Courses & TutorialsProgramming
Awesome Flask – Massive Collection of Resources

A curated list of awesome things related to Flask.
Flask is a lightweight WSGI web application framework written in Python.
Contents
Third-Party Extensions
Admin
- Flask-Admin – Functional admin panel that provides a user interface for managing data based on your models.
APIs
RESTful API Support
- Eve – RESTful API framework designed for human beings.
- Flask-Classful – Adds support for class-based views for setting up RESTful API route endpoints.
- Flask-MongoRest – RESTful API framework wrapped around MongoEngine.
- Flask-RESTful – Quickly build RESTful APIs.
RESTful API + Swagger/OpenAPI Documentation Support
- Connexion – Open source, OpenAPI-based, REST framework built on top of Flask.
- Flask-Rebar – Combines Flask, marshmallow, and OpenAPI for robust REST services.
- Flask-RESTX – Community-driven fork of Flask-RESTPlus that makes it easy to build and document RESTful APIs with Flask.
Swagger/OpenAPI Documentation Support
- Flask-APISpec – Auto-documenting REST APIs.
- SAFRS: Python OpenAPI & JSON:API Framework – SAFRS, which is an acronym for SqlAlchemy Flask-Restful Swagger, is meant to help developers create self-documenting JSON APIs for SQLAlchemy database objects and relationships.
Auth
Basic Auth and Session-based (for HTML Endpoints)
- Flask-HTTPAuth – Authentication.
- Flask-Login – Account management and authentication.
- Flask Principal – Authorization.
- Flask-Security-Too – Account management, authentication, authorization.
- Flask-SimpleLogin – Authentication.
- Flask-User – Account management, authentication, authorization.
Curious about the differences differences between Flask-User and Flask-Security? Review the Flask-User FAQ.
JWT-based (for JSON Endpoints)
- Flask-JWT – Basic support for working with JWTs.
- Flask-JWT-Extended – Advanced support for working with JWTs.
- Flask-JWT-Router – Adds authorized routes to a Flask app.
- Flask-Praetorian – Authentication and authorization for Flask APIs.
OAuth
- Authlib – Library for building OAuth and OpenID clients and servers.
- Authomatic – Framework agnostic library for Python web applications that simplifies authentication and authorization of users via OAuth and OpenID.
- Flask-Dance – OAuth support via OAuthLib.
Cache
- Flask-Caching – Caching support.
Data Validation and Serialization
- Flask-Marshmallow – Thin integration layer for Flask and marshmallow (an object serialization /deserialization library) that adds additional features to marshmallow.
- Flask-Pydantic – Pydantic support.
Databases
ORMs
- Flask-Peewee – Support for Peewee, an ORM and database migration tool.
- Flask-Pony – Support for Pony ORM.
- Flask-SQLAlchemy – Support for SQLAlchemy, a SQL toolkit and ORM.
ODMs
- Flask-MongoEngine – Bridges Flask and MongoEngine for working with MongoDB.
- Flask-PyMongo – Bridges Flask and PyMongo for working with MongoDB.
Migrations
- Flask-Alembic – Configurable Alembic migration environment around a Flask-SQLAlchemy database for handling database migrations.
- Flask-DB – Flask CLI extension that helps you migrate, drop, create and seed your SQL database.
- Flask-Migrate – Handles SQLAlchemy database migrations via Alembic.
Curious about the differences between Alembic, Flask-Alembic, Flask-Migrate, and Flask-DB? Review this item from Flask-DB’s FAQ.
Other Tools
- Flask-Excel – Uses pyexcel to read, manipulate, and write data in different Excel formats: csv, ods, xls, xlsx and xlsm.
Developer Tools
Debugging
- Flask-DebugToolbar – Port of Django’s debug toolbar for Flask.
- Flask-Profiler – Endpoint analyzer/profiler.
Fixtures
- Flask-Fixtures – Create database fixtures from JSON or YAML.
- Mixer – Object generation tool.
Logging
- Rollbar – Flask error logging with Rollbar.
Monitoring
- Airbrake – Airbrake Flask integration.
- Elastic APM Agent – Elastic APM Flask integration.
- Flask Monitoring Dashboard – Dashboard for automatic monitoring of Flask web-services.
- Sentry Python SDK – Sentry SDK Flask integration.
Tracing
- Flask-OpenTracing – OpenTracing instrumentation.
Testing
- Flask-Testing – Unittest extensions.
- Pytest-Flask – Pytest support for testing Flask applications.
- Flask-Mail – Provides simple email sending capabilities.
Forms
- Flask-WTF – Integrates Flask with WTForms (provides CSRF protection as well).
Full-text Search
- flask-msearch – Full-text search.
- Flask-WhooshAlchemy3 – Full-text search + Whoosh indexing capabilities for Flask-SQLAlchemy.
- SQLAlchemy-Searchable – Provides full-text search capabilities for SQLAlchemy models.
Security
- Flask-Bcrypt – Provides bcrypt hashing utilities.
- Flask-CORS – Cross Origin Resource Sharing (CORS) handling.
- Flask-SeaSurf – Cross-site request forgery (CSRF) prevention.
- Flask-Talisman – HTTPS and security headers.
Task Queues
- Celery – The most commonly used Python library for handling asynchronous tasks and scheduling.
- Dramatiq – Fast and reliable alternative to Celery.
- Flask-RQ – RQ (Redis Queue) integration.
- Huey – Redis-based task queue that aims to provide a simple, yet flexible framework for executing tasks.
Utils
- Flask-Babel – Support for internationalization (i18n) and localization (l10n).
- Flask-File-Upload – Easy file uploads.
- Flask-FlatPages – Provides flat static pages based on text files.
- Frozen-Flask – Freezes a Flask application into a set of static files.
- Flask-GraphQL – GraphQL support.
- Flask-Injector – Adds support for dependency injection.
- Flask-Limiter – Rate limiting features to Flask routes.
- Flask-Moment – Moment.js date and time formatting helpers for Jinja2 templates.
- Flask-Paginate – Pagination support.
- Flask-Sitemap – Sitemap generation.
- Flask-SocketIO – Socket.IO integration.
Resources
Official Resources
- Project Website – Official Flask website.
- Documentation – Comprehensive documentation for all Flask versions.
- Flaskr Tutorial – Build a basic blog application called Flaskr.
- Source Code – Hosted on GitHub.
External Resources
- Full Stack Python’s Flask Page – Explanation of Flask philosophy and links to other resources and tutorials.
- Miguel Grinberg’s Blog – Multiple Flask-specific tutorials.
- Nick Janetakis’s Blog – Flask Tips, Tricks and Tutorials.
- Patrick Kennedy’s Blog – Numerous tutorials on learning Python web application development with Flask.
- RealPython – Many high-quality tutorials on Flask.
- TestDriven.io – Up-to-date tutorials on Flask.
Community
- Discord – Pallets Projects community on Discord (use the
#get-help
channel for Flask support). - Flask Jobs – A job board dedicated to Flask.
- IRC Channel – Chat with other Flask users on IRC channel
#pocoo
on FreeNode. - Mailing List – General discussion of Flask and the Pallets projects (
flask@python.org
). - Reddit – Flask subreddit.
- Stack Overflow – Questions tagged
flask
. - Twitter – For official announcements on updates, security fixes, etc.
Conferences
- FlaskCon – Community driven Flask event intended for speakers and attendees all over the world to participate in technical and evangelical sessions related to Flask.
- PyConWeb – Covers Django, Tornado, Flask, API frameworks. AsyncIO, networking, Frontend, JavaScript, and web security.
- Flask Conf Brazil – Conference for the developers and users of Flask.
- PyCon US – The largest annual gathering for the community using and developing the open-source Python programming language.
- PyCon Australia – National conference organized for the Python Programming Community.
- Euro Python – The largest Python conference in Europe.
- PyCon – Complete listing of all PyCons globally.
Meetups
- Flask – 40+ groups in 20 countries.
- Python Web Development – 600+ groups in 81 countries.
- Python – 2,400+ groups in 100 countries.
Podcasts
- TalkPython – The leading Python podcast with several episodes on Flask.
- Podcast Init – A popular Python podcast that features Flask guests on occasion.
- Python Bytes – Another Python podcast that discusses Flask from time to time.
- Full Stack Python’s Best Python Podcasts Page – A list of active Python-specific podcasts.
Tutorials
- Flask Mega-Tutorial – Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework.
- Flaskr TDD – Intro to Flask, Test-Driven Development (TDD), and JavaScript.
- Make a Web App Using Python & Flask! – Creating a Python Website from the Bottom Up.
Courses
- Developing Web Applications with Python and Flask – This course focuses on teaching the fundamentals of Flask by building and testing a web application using Test-Driven Development (TDD).
- Test-Driven Development with Python, Flask, and Docker – Learn how to build, test, and deploy a production-grade microservice powered by Python, Flask, and Docker.
- Authentication with Flask, React, and Docker – Learn how to add authentication to a Flask and React microservice!.
- Deploying a Flask and React Microservice to AWS ECS – Learn how to deploy microservices to Amazon ECS powered by Flask, React, and Docker.
- Build a SAAS App with Flask – Learn to build web applications with Flask and Docker.
- Full Stack Foundations – Build a data-driven web app with Python.
- Designing RESTful APIs – Build and Secure a backend API server.
Books
- Flask Web Development – Learn the framework from the ground up by developing, step-by-step, a real-world project.
- Real Python – Learn Python programming, by example.
- Explore Flask – Best practices and patterns for developing web applications with Flask.
Videos
- PyVideo
- Practical Flask Web Development Tutorials
- Python Flask Tutorial: Full-Featured Web App
- Discover Flask – Full Stack Web Development with Flask
Hosting
PaaS
(Platforms-as-a-Service)
- Heroku
- PythonAnywhere
- AWS Elastic Beanstalk
- Google App Engine
- Microsoft Azure App Service
- Divio
- Render
IaaS
(Infrastructure-as-a-Service)
Serverless
Frameworks:
Compute:
Projects
Boilerplates
- cookiecutter-flask – With Bootstrap 4, asset bundling annd minification with webpack, starter templates, and registration/authentication.
- Cookiecutter Flask Skeleton – Flask starter project for Cookiecutter.
- gae-init – For starting new applications on Google App Engine.
- Flask-AppBuilder – Simple and rapid application development framework that includes detailed security, auto CRUD generation for your models, Google charts, and much more.
- flask-base – Includes SQLAlchemy, Redis, User Authentication, and more.
- Flask-Bootstrap – Integrated SQLAlchemy, authentication, and Bootstrap frontend.
- uwsgi-nginx-flask-docker – Docker image with uWSGI and Nginx for Flask applications in Python running in a single container.
- React-Redux-Flask – Boilerplate application for a Flask JWT Backend and a React/Redux Front-End with Material UI.
- Flask-Scaffold – Prototype Database driven Web apps in Angular 6, Bootstrap 4 and REST API’s with Flask.
- Flask-VueJS – Connect Flask application with VueJS.
Open Source Projects
- ActorCloud – Open-source IoT Platform.
- Airflow
- Busy Beaver – Chicago Python’s Community Engagement Slack bot.
- FlaskBB – Classic forum software.
- Indico – Feature-rich event management system, made at CERN.
- Quokka CMS – The happiest CMS in the world.
- PythonBuddy – Online Python Editor with live syntax checking and execution.
- Redash – Designed to enable anyone, regardless of the level of technical sophistication, to harness the power of data big and small.
- SkyLines – Live tracking, flight database, and competition framework.
- Security Monkey – Monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
- SecureDrop – Open-source whistleblower submission system that media organizations can use to securely accept documents from, and communicate with anonymous sources.
- SimpleLogin – Protect your online identity with email alias.
- sr.ht – Git hosting service (check out Why I chose Flask to build sr.ht’s mini-services as well).
- Timesketch – Collaborative forensic timeline analysis.