Flask Extensions, Plug-ins and Related Libraries

Flask is a Python web framework.

Official Flask logo. Flask Artwork License.

Flask has a wide range of code libraries and extensions that make the web framework go from a microframework into a full-featured web application creation tool.

Flask's large ecosystem of extensions make it easier for developers to build common web app features such as authentication, database operations and APIs even though support is not built into the core Flask web framework. This design is by choice in contrast to Django's "batteries-included" approach. Either framework's design decision is a viable approach depending on the needs and requirements of the application you are building.

The following projects, ordered alphabetically, can be helpful both as extensions added to your code base as well as example code for building your own applications.

Flask App Builder

Flask-AppBuilder (documentation and example apps) is a web application generator that uses Flask to automatically create the code for database-driven applications based on parameters set by the user. The generated applications include default security settings, forms, and internationalization support.

Flask App Builder is provided under the BSD 3-Clause "New" or "Revised" license.

Flask-Ask

Flask-Ask is an extension for building Amazon Alexa skills using a familiar Flask functions style of organization. There is a starter tutorial that shows how to use the framework and the code is provided as open source under the Apache 2.0 license.

flask-base

flask-base (project documentation) is a boilerplate starter application that is pre-configured with SQLAlchemy, Redis, user authentication and other features.

flask-base's code is open sourced under the MIT license.

flask-bootstrap

flask-bootstrap (PyPI package information) makes it easier to use the Bootstrap CSS framework in your Flask applications with less boilerplate code. The project was primarily created by Marc Brinkmann @mbr and the source code is open sourced under the Apache 2.0 license.

Flask Debug-toolbar

Flask Debug-toolbar (documentation and PyPI page) is a Flask conversion of the popular Django Debug Toolbar project. This extension creates a sidebar with useful debugging information when you are running a Flask application in development mode. The project is provided as open source under this license.

Flask-HTTPAuth

Flask-HTTPAuth (documentation and PyPI package information) is a Flask framework extension that creates Basic and Digest HTTP authentication for routes. This project is primarily built and maintained by Miguel Grinberg. It is provided as open source under the MIT license.

Flask-Login

Flask-Login (project documentation and PyPI package) is a Flask extension that provides user session management, which handles common tasks such as logging in and out of a web application and managing associated user session data. Flask-Login is open sourced under the MIT license.

flask-praetorian

flask-praetorian (project documentation and PyPI package information) extends the Flask framework security model with JWT tokens, which is particularly useful when using a front end JavaScript framework such as React or Angular. PyJWT is used under the hood to ensure a solid JWT implementation. This extension makes it much easier to add functionality that checks user roles on URLs before allowing access to a resource. flask-praetorian is open sourced under the MIT license.

Flask RESTX

Flask RESTX is an extension that makes it easier to build RESTful APIs into your applications. Flask RESTX aims for minimal configuration to get basic APIs running for existing applications and it exposes endpoint documentation using Swagger.

Flask RESTX is provided as open source under the BSD 3-Clause license.

Flask-Security-Too

Flask-Security-Too (PyPi page and project documentation) is a maintained fork of the original Flask-Security project that makes it easier to add common security features to Flask web applications. A few of the critical goals of the Flask-Security-Too project are ensuring JavaScript client-based single-page applications (SPAs) can work securely with Flask-based backends and that guidance by the OWASP organization is followed by default.

The Flask-Security-Too project is provided as open source under the MIT license.

Flask-SocketIO

Flask-SocketIO (PyPI package information, official tutorial and project documentation) is a code library by Miguel Grinberg that provides Socket.IO integration for Flask applications. This extension makes it easier to add bi-directional communications on the web via the WebSockets protocol.

The Flask-SocketIO project is open source under the MIT license.

Flask-User

Flask-User (PyPI information and project documentation) is a Flask extension that makes it easier to add custom user account management and authentication to the projects you are building. The extension supports persistent data storage through both relational databases and MongoDB. The project is provided as open source under the MIT license.

Flask-VueJs-Template

Flask-VueJs-Template (demo site) is a minimal Flask boilerplate starter project that combines Flask, Vue.js, and Flask-RESTPlus. The project provides some sensible defaults that are easy to continue building on, and the source code is open source under the MIT license.

Flask-WTF

Flask-WTF (project documentation and PyPI page) provides a bridge between Flask and the the WTForms form-handling library. It makes it easier to use WTForms by reducing boilerplate code and shorter examples for common form operations as well as common security practices such as CSRF.

Sponsored By

Sentry logo

Software errors are inevitable. Chaos is not. Try Sentry for free.


AssemblyAI logo

The most accurate speech-to-text API. Built for Python developers.

Full Stack Python

Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.
Updates via Twitter & Facebook.

Matt Makai 2012-2020