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


Talk Python's Mastodon Michael Kennedy's Mastodon