Building Data-Driven Web Apps with Flask and SQLAlchemy Transcripts
Chapter: Welcome to the course
Lecture: What is fullstack development?
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
In this course we're going to build
0:01
what is called a full stack web app.
0:03
Or at least sometimes it's referred to as that.
0:06
So what is this full stack idea anyway?
0:08
Let's talk real quickly about it.
0:10
So we have a browser, we have the internet
0:13
we have our server and our server's
0:15
going to talk to a database.
0:16
And this browser, it wants to talk to our web app.
0:19
So magically a request comes in
0:20
and finds its way through the internet to our server.
0:24
Our server is going to do some work
0:25
maybe ask some questions to the database
0:27
and send a response back.
0:29
What technologies do we need to know to make this happen?
0:32
Well, over on the server side
0:33
we're going to use Python to run our Flask application.
0:38
We're going to write our code in Python, things like that.
0:40
We're also going to write dynamic HTML templates
0:43
in a Python extended version of HTML basically
0:47
in something called Jinja, Jinja2 specifically.
0:50
So we need to know this Jinga language
0:53
we need to know the Flask web framework
0:55
we've got to talk to a database.
0:56
We could do that directly through the DB-API
0:59
and raw SQL, and the raw MongoDB query language
1:02
but that's really not the most efficient way to do it.
1:05
So we're going to use SQLAlchemy to map classes over.
1:07
So we're going to learn SQLAlchemy.
1:09
We want to deploy our code somewhere on the internet
1:12
that's the red thing right here in the picture after all.
1:14
So we're going to put that onto Linux, onto Ubuntu.
1:17
And there, we need to have something
1:19
that's going to run our Python code, our Flask application
1:22
and do all the web stuff like HTTP2
1:25
Static files, SSL and so on.
1:27
So that latter part is Nginx
1:29
the part that runs our code is uWSGI.
1:31
So we're going to have all these things in play in the server
1:34
and then when we talk to the database
1:36
the database will probably be Postgres or MongoDB
1:39
and of course it has its own query language
1:41
like SQL, or the MongoDB query language.
1:45
We're not really going to focus too much on that
1:46
because we're going to use this class based
1:48
ORM style with SQLAlchemy.
1:50
But, in practice, you would need to know that.
1:53
You'd also need to be able to migrate this database
1:55
and evolve its schema as your application changes over time.
1:58
So you need to know about database migrations
2:01
and production and backups, and things like that.
2:04
So that's all from the server side
2:06
we're not quite done.
2:07
We have a little more over here in the browser.
2:09
We're going to send back HTML
2:10
and we need to know HTML and CSS
2:12
to make this look good.
2:14
Probably some frontend framework
2:16
or we're going to be doing a ton of work ourselves.
2:18
So maybe Bootstrap or Semantic UI, or something like that.
2:22
Possibly, at least sometimes in these full stack web apps
2:24
we're doing a lot of Javascript
2:25
maybe a front end Javascript framework like Vue.js.
2:29
The gray out stuff we're not really going to cover too much
2:31
so we're not going to really worry about that.
2:33
And you'll see you can build really interesting
2:35
applications without most of those.
2:38
At least without very much Javascript
2:39
or the front end frameworks.
2:41
Although, often when people do talk about full stack
2:44
that's kind of included in there.
2:46
There's a ton of stuff we're going to learn here.
2:48
This can be pretty daunting in the beginning.
2:49
You're like, "Oh my gosh, all these things
2:51
"and not only do I have to get better at Python
2:54
"I also have to get better at CSS
2:56
"and databases, in Linux.
2:58
"I didn't even think I'd have to learn Linux for all this."
3:00
Right? But, don't worry, by the time you get to the end
3:03
of this course, you're going to have a really nice
3:05
concise and tight example of putting
3:07
all this stuff together.
3:08
We're going to talk about each one of them separately
3:12
and you're going to have a great app
3:13
a great full stack web app, at the end of this course.