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?