Skip to content


Repository files navigation

Discover Flask

Full Stack Web Development with Flask.

Build Status

Flask is a micro web framework powered by Python. Its API is fairly small, making it easy to learn and simple to use. But don't let this fool you, as it's powerful enough to support enterprise-level applications handling large amounts of traffic. You can start small with an app contained entirely in one file, then slowly scale up to multiple files and folders in a well-structured manner as your site becomes more and more complex.


Please note: This is a tutorial series, which is still in progress. The source code is not meant to be used until the end of the series.


Please help us keep this free, open source project going. Purchase the Real Python course. Provide gratitude through Gratipay. Star this repo. Tweet about it. Anything helps. Thank you!

Support via Gratipay


Part Title Git Tag
1 Setting Up a Static Site (blog post) part1
2 Creating a login page (blog post) part2
3 User Authentication part3
4 Template Inheritance part4
5 Databases part5
6 List Comprehensions N/A
7 Unit Tests part7
8 Deploying to Heroku part8
9 SQLAlchemy part9
10 Configuration part10
11 Secret Key part11
12 Heroku Configuration Settings part12
13 Heroku Postgres Setup part13
14 Local PostgreSQL Setup part14
15 Managing Database Migrations part15
16 Database Downgrades with Flask-Migrate/Alembic part16
17 Virtualenvwrapper part17
18 Password Hashing part18
19 Blueprints part19
20 Blueprints Redux part20
21 User Authentication (part 2) part21
22 Unit Testing with Flask-Testing part22
23 Session Management with Flask-Login part23
24 Testing User Login and Logout part24
25 User Registration (functionality and unit tests) part25
26 Finalize Messaging System part26
27 Test Coverage with part27
28 Flask Testing! part28
29 Flask Testing (increase test coverage) part29
30 Continuous Integration part30

You can view the entire video playlist here.


  • Nice Vagrant Instance for Discover Flask, for use with PyJenkinsCI - a test Jenkins Continuous Integration (CI) for Python projects, compatible with Mac OSX and Ubuntu systems. (Thanks, Apollo!)
  • Awesome project, based on the series -> HomeCenter