# Awesome Flask

> A curated list of awesome Flask resources and plugins

- Awesome Flask
  - Framework
  - Admin interface
  - Analytics
  - Authentication
  - Authorization
  - Database
  - Database Migrations
  - Session
  - Cache
  - Data Validation
  - Email
  - i18n
  - Full-text searching
  - Rate Limiting
  - Task Queue
  - Exception tracking
  - Tracing
  - APM
  - Other SDK
  - Frontend
  - Development (Debugging/Testing/Documentation)
  - Utils
- Resources
  - Tutorials
  - Courses
  - Books
  - Slides
  - Videos
  - Built with Flask
  - Boilerplate

## Framework

- Connexion - Swagger/OpenAPI First framework for Python on top of Flask with automatic endpoint validation and OAuth2 support
- Flask-MongoRest - Restful API framework wrapped around MongoEngine
- Eve - REST API framework powered by Flask, MongoDB and good intentions
- Flask-Restless - A Flask extension for creating simple ReSTful APIs from SQLAlchemy models
- Flask-RESTful - Simple framework for creating REST APIs
- Flask-RestPlus - syntaxic sugar, helpers and automatically generated Swagger documentation.
- Flask-Potion - RESTful API framework for Flask and SQLAlchemy
- Zappa - Build and deploy server-less Flask applications on AWS Lambda and API Gateway

## Admin interface

- Flask-Admin - Simple and extensible administrative interface framework for Flask

## Analytics

- Flask-Analytics - Analytics snippets generator extension for the Flask framework
- Flask-Matomo - Track requests to your Flask website with Matomo

## Authentication

- Flask-Security - Quick and simple security for Flask applications
- Flask-Login - Flask user session management
- Flask-User - Customizable user account management for Flask
- Flask-HTTPAuth - Simple extension that provides Basic and Digest HTTP authentication for Flask routes
- Flask-Praetorian - Strong, Simple, and Precise security for Flask APIs (using jwt)

## Authorization

- Authlib - Authlib is an ambitious authentication library for OAuth 1, OAuth 2, OpenID clients, servers and more.
- Authomatic - Authomatic provides out of the box support for a number of providers using OAuth 1.0a (Twitter, Tumblr and more) and OAuth 2.0 (Facebook, Foursquare, GitHub, Google, LinkedIn, PayPal and more)
- Flask-Pundit - Extension based on Rails’ Pundit gem that provides easy way to organize access control for your models
- Flask-Dance - OAuth consumer extension for Flask, shipped with pre-set support for Facebook, GitHub, Google, etc.

## Database

- Flask-MongoEngine - MongoEngine flask extension with WTF model forms support
- Flask-SQLAlchemy - Adds SQLAlchemy support to Flask

## Database Migrations

- Flask-Migrate - SQLAlchemy database migrations for Flask applications using Alembic

## Session

- Flask-Session - Server side session extension for Flask

## Cache

- Flask-Caching - Adds easy cache support to Flask
- flask-heroku-cacheify - Automatic Flask cache configuration on Heroku

## Data Validation

- Flask-WTF - Simple integration of Flask and WTForms, including CSRF, file upload and Recaptcha integration.

## Email

- Flask-Mail - Flask-Mail adds SMTP mail sending to your Flask applications

## i18n

- flask-babel - i18n and l10n support for Flask based on Babel and pytz

## Full-text searching

- SQLAlchemy-Searchable - Full-text searching for Flask-SQLAlchemy (Postgres only)
- flask_msearch - Full text search for flask with whoosh

## Rate Limiting

- Flask-Limiter - Flask-Limiter provides rate limiting features to flask routes

## Task Queue

- Flask-Dramatiq - dramatiq integration for Flask applications.
- huey - a little task queue for python
- Flask-RQ - RQ (Redis Queue) integration for Flask applications
- celery - Distributed Task Queue

## Exception tracking

- sentry-sdk - Python client for Sentry.
- airbrake-python - Python client for Airbrake

## Tracing

- flask-zipkin - Distributed tracing with Zipkin.
- Flask-OpenTracing - Distributed tracing with OpenTracing.

## APM

- elastic-apm - Elastic APM agent for Python

## Other SDK

- Flask-GoogleMaps - Build and embed google maps in our Flask templates
- Flask-Gravatar - Small and simple gravatar usage in Flask
- Flask-Pusher - Pusher integration for Flask
- Flask-Azure-Storage - Flask extension that provides integration with Azure Storage

## Frontend

- Flask-CORS - A Flask extension for handling Cross Origin Resource Sharing (CORS), making cross-origin AJAX possible
- flask-assets - Flask webassets integration
- flask-s3 - Seamlessly serve your static assets of your Flask app from Amazon S3
- Flask-SSLify - Force SSL on your Flask app
- Flask-HTMLmin - Flask html minifier

## Development (Debugging/Testing/Documentation)

- Flasgger - Create API documentation for Flask views using Swagger 2.0 specs
- flask-apispec - simple self-documenting APIs with flask
- flask2postman - Generate a Postman collection from your Flask application
- flask_profiler - endpoint analyzer/profiler for Flask
- Flask-DebugToolbar - A port of the django debug toolbar to flask
- flask-debug-toolbar-mongo - MongoDB panel for the Flask Debug Toolbar
- Flask-Testing - Unittest extensions for Flask
- pytest-flask - A set of pytest fixtures to test Flask applications
- Flask-MonitoringDashboard - Automatically monitor the evolving performance of Flask/Python web services.
- nplusone - Auto-detect n+1 queries with Flask and SQLAlchemy
- connexion - Swagger/OpenAPI First framework for Python on top of Flask with automatic endpoint validation & OAuth2 support.

## Utils

- flask-marshmallow Flask + marshmallow for beautiful APIs
- flask-jsonrpc - A basic JSON-RPC implementation for your Flask-powered sites
- Flask-Bcrypt - Flask-Bcrypt is a Flask extension that provides bcrypt hashing utilities for your application
- Mixer - Mixer is application to generate instances of Django or SQLAlchemy models
- Flask-FeatureFlags - A Flask extension that enables or disables features based on configuration
- Flask-Reggie - Regex Converter for Flask URL Routes
- Flask-SocketIO - Socket.IO integration for Flask applications
- Flask-Moment - Formatting of dates and times in Flask templates using moment.js
- Flask-Paginate - Pagination support for Flask
- Flask-graphql - Adds GraphQL support to your Flask application

# Resources

## Tutorials

- How to build a news app that never goes down and costs you practically nothing (by NPR)
- Building websites in Python with Flask
- The Flask Mega-Tutorial
- Implementing a RESTful Web API with Python & Flask
- Discover Flask - Full Stack Web Development with Flask
- Flaskr - Intro to Flask, Test Driven Development, and jQuery

## Courses

- Full Stack Foundations
- Designing RESTful APIs

## Books

- Explore Flask
- Flask Web Development
- Real Python
- Learning Flask Framework
- Flask Blueprints
- Flask Framework Cookbook
- Mastering Flask
- Building Web Applications with Flask

## Slides

- Creating beautiful REST APIs with Flask
- Advanced Flask Patterns
- Flasky Goodness
- Domain Driven Design (… with Flask)
- In Flask we Trust

## Videos

- PyVideo
- Practical Flask Web Development Tutorials

## Built with Flask

- zmusic-ng - ZX2C4 Music provides a web interface for playing and downloading music files using metadata.
- GuitarFan - guitar tab
- June - python-china.org
- Zerqu - ZERQU is a content-focused API-based platform. eg: Python-China
- motiky
- missing - a list service called missing
- thenewsmeme.com
- overholt - Example Flask application illustrating common practices
- pypress - flask team blog
- thepast.me
- redispapa - another redis monitor by using flask, angular, socket.io
- flaskblog - a simple blog system based on flask
- cleanblog - a clean blog system based on flask and mongoengine
- Quokka CMS - CMS made with Flask and MongoDB
- chat - a live chat built with python (flask + gevent + apscheduler) + redis
- chatapp - Flask and Angular.js Chat Application using Socket.io
- Frozen-Flask - Freezes a Flask application into a set of static files
- mcflyin - A small timeseries transformation API built on Flask and Pandas
- Skylines - Live tracking, flight database and competition framework
- airflow - Airflow is a system to programmatically author, schedule and monitor data pipelines.
- timesketch - Collaborative forensics timeline analysis
- changes - A dashboard for your code. A build system.
- security_monkey - monitors policy changes and alerts on insecure configurations in an AWS account.
- securedrop- an open-source whistleblower submission system that media organizations can use to securely accept documents from and communicate with anonymous sources.
- sync_engine - IMAP/SMTP sync system with modern APIs
- cleansweep - Volunteer & Campaign Management System
- indico - a general-purpose event management web-based solution. It includes a full-blown conference organization workflow as well as tools for meeting management and room booking. It provides as well integration with video-conferencing solutions.
- flaskbb - A classic Forum Software in Python using Flask.
- [PythonBuddy] (https://github.com/ethanchewy/PythonBuddy) - Online Python Editor With Live Syntax Checking and Execution

## Boilerplate

- fbone
- cookiecutter-flask
- Flask-Foundation
- flask-rest-template
- gae-init - Flask boilerplate running on Google App Engine
- Flask-AppBuilder - Simple and rapid application builder framework, built on top of Flask. includes detailed security, auto form generation, google charts and much more