Building data-driven web apps with Flask and SQLAlchemy Transcripts
Chapter: Welcome to the course
Lecture: What is fullstack development?
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: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: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.