Building data-driven web apps with Flask and SQLAlchemy
Source code and course GitHub repositorygithub.com/talkpython/data-driven-web-apps-with-flask
Flask or Pyramid Web Framework?
This course is available in multiple web frameworks. Of course, this page is for the Flask version. It's also available from us in the Pyramid web framework.
What's this course about and how is it different?
Full stack web development is exactly what you need to build true data-driven web applications in Python. Yet these courses can be confusing and overwhelming due to the many technologies involved (Python, SQL, CSS, etc).
We have taken great care to build a course that is just real enough to give you what you need without anything extra. We build a replica of a popular web application, Python's own packaging index over at pypi.org.
While building our replica PyPI, you will learn:
- Learn about the different major Python web frameworks
- Create a Flask-based website from scratch using the CLI and PyCharm
- Work with dynamic HTML templates
- Map URLs to view methods using routing
- Make advanced use of routing to build a full custom CMS in 8 minutes
- Take advantage of bootstrap to build well designed sites
- Map data to and from Python using classes with SQLAlchemy
- Learn how Alembic can help our database evolve as our models change
- Accept user input with HTML forms
- Add client and server-side validation
- Overcome the special challenges of testing web apps (databases, frameworks, etc)
- Deploy our web application to a fresh Linux machine (virtual, cloud-based)
- Leverage our design patterns to convert our app to another data model (MongoDB edition)
View the full course outline
Who is this course for?
This course is for anyone who wants to create Python-based web applications using the Flask web framework. In fact, you'll learn a lot of web skills that will translate across frameworks as well.
We do assume that you have basic Python language skills and can read HTML and CSS. But most advanced uses of the language or CSS are explained in the course.
Follow along with your own version
Students get the most out of our courses when they work on projects closely related to the materials they are learning or even follow along by watching the videos and then recreating that code themselves chapter by chapter.
We have organized the source code included with the course to make following along starting from any chapter a breeze. In the screenshot below, you'll see two directories:
The start version is exactly what we started with on the videos for this chapter (chapter 9). If you want to follow along with chapter 9, just copy that somewhere and get started. Similarly, the final version is our final result exactly as it was on video. You can even diff the two directories to see the changes we made or against your work to see how we compare.
Here is the starter and final code from the SQLAlchemy database chapter.
Concepts backed by concise visuals
While exploring a topic interactively with demos and live code is very engaging, it can lose the forest for the trees. That's why when we hit a new topic, we stop and discuss it with concise and clear visuals.
Here's an example of concepts reviewing the basic idea of routing URLs to view methods and how Flask selects from the various URL routes given a single URL.
Who am I? Why should you take my course?
My name is Michael, nice to meet you. ;) There are a couple of reasons I'm especially qualified to teach you Python.
1. I'm the host of the #1 podcast on Python called Talk Python To Me. On there I've interviewed many of the leaders and creators in the Python community. I bring that perspective to all the courses I create.
2. I've been a professional software trainer for over 10 years. I have taught literally thousands of professional developers in hundreds of courses throughout the world.
3. Students have loved my courses. Here are just a few of quotes from past students of mine.
"Michael is super knowledgeable, loves his craft, and he conveys it all well. I would highly recommend his training class anytime." - Robert F.
"Michael is simply an outstanding instructor." - Kevin R.
"Michael was an encyclopedia for the deep inner workings of Python. Very impressive." - Neal L.
Free office hours keep you from getting stuck
One of the challenges of self-paced online learning is getting stuck. It can be hard to get the help you need to get unstuck.
That's why at Talk Python Training, we offer live, online office hours. You drop in and join a group of fellow students to chat about your course progress and see solutions via screen sharing.
Just visit your account page to see the upcoming office hour schedule. Note: You must be enrolled in at least one course.
Is this course based on Python 3 or Python 2?
This course is based upon Python 3. With Python 2 going unsupported in 2020, we believe that it would be ill-advised to teach or learn Python 2.
The time to act is now
This data-driven web apps with Python and Flask course is just what you need to build that fast, custom web application that can help you create your next great idea or just solve a business problem by deploying it behind your firewall.