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


Talk Python's Mastodon Michael Kennedy's Mastodon