Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time
September 3, 2014 16:59
December 28, 2014 11:34
December 28, 2014 11:34
January 3, 2015 15:11
January 8, 2015 22:43
October 29, 2014 11:44
September 19, 2014 14:50
September 25, 2014 11:07
January 3, 2015 12:24
December 3, 2015 08:11
September 19, 2014 14:51
June 18, 2014 09:28

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