Anvil: Web apps with nothing but Python Transcripts
Chapter: Welcome to the course
Lecture: Defining full stack web development

Login or purchase this course to watch this video and the rest of the course contents.
0:00 Let's spend just a moment
0:01 talking about full stack web development
0:03 so you can compare and contrast that
0:05 with working with something like Anvil.
0:08 So, in the full stack world, really in Anvil as well
0:11 you just don't have to write it
0:12 we're going to have a browser, some server out in the cloud
0:16 internet, being the cloud
0:18 and a database where the app's going to store its data
0:21 you know, what products you have in a bookstore
0:24 what users have registered, things like this.
0:26 So, a request is going to come in
0:28 through the magic of the internet, find our server
0:30 server's going to talk to our database
0:32 and we'll get back to it.
0:33 Now, in that simple and familiar experience
0:37 how many technologies were involved?
0:39 If you're going to create this experience
0:41 directly from raw Python or some other programming language
0:45 in a full stack way
0:46 you're going to need to use those technologies to build it.
0:51 So, on the server side, we have a lot happening.
0:53 We have Python.
0:54 We have HTML and CSS templates that we're generating.
0:58 These are probably dynamic, not just static HTML
1:01 but something that given, say
1:03 a list of books and a template
1:05 turn that into a whole bunch of repeated HTML blocks
1:09 inside of an HTML response.
1:11 So, you've got to know some kind of language
1:13 like Jinja, Pure, Chameleon or something like this.
1:17 You also need to know web framework.
1:18 In Python world, a popular one of those is Flask
1:22 so you'd have to know Flask.
1:23 For talking to a database
1:24 you need to have some library to do so.
1:26 You can do it directly, in Python.
1:29 You got to know that library, it's called DB-API2.
1:32 More likely you'd be using something called an ORM
1:35 and SQLAlchemy.
1:37 In order to run all this code that you've written
1:38 you have to know Linux and then on Linux
1:41 you have to install a front-end client-facing server
1:43 and then a thing that runs Python code in a web context
1:47 so, Nginx and uWSGI is a good pairing there.
1:50 On the data side
1:51 you've got to know some kind of database server
1:53 if that's SQLite or Postgres or something like MongoDB.
1:58 And another query language
2:00 for many of those that's the SQL language
2:02 and you got to be able to do migrations
2:04 from your data schema from one to the other.
2:07 Right, migrate your database
2:08 as the type of data you need to store changes.
2:11 Finally, that's the server side.
2:13 On the client side, you have to know JavaScript
2:15 and again, HTML and CSS.
2:17 These kind of appear in both places
2:19 but really they have the most effect on the browser, right?
2:22 And then you maybe need to know some CSS front-end framework
2:25 like Bootstrap and some front-end framework for Javascript
2:28 like AngularJS
2:30 to create a single page app, as we're talking about here.
2:33 Woof, that is a lot of stuff, isn't it?
2:36 Each one of these is kind of a big deal to learn
2:38 and to work with.
2:40 And so you try to put them all together
2:41 and that's a whole lot.
2:42 So, what's great is, with Anvil, you'll see
2:45 that we pretty much need to know Python
2:48 and, yeah, that's about it.
2:50 That's about all we got to know.
2:51 We are going to work with a database
2:53 but like I said, it's a super simplified thing.
2:55 So, maybe the SQL language, as well.
2:58 But, yeah, pretty much Python and possibly SQL
3:01 but not necessarily.
3:03 Anvil's primary job is to make
3:06 most of this stuff transparent infrastructure to you.
3:09 Allow you to write pure Python
3:11 and then just work with their infrastructure
3:13 which really is doing all these things
3:15 but you don't have to worry about them, right?