35 KiB
35 KiB
Awesome Flask !Awesome (https://awesome.re/badge-flat.svg) (https://github.com/sindresorhus/awesome)
▐ A curated list of awesome things related to Flask.
Flask (https://flask.palletsprojects.com/) is a lightweight WSGI web application framework written in Python.
Contents
- Third-Party Extensions (#third-party-extensions)
- Admin (#admin)
- APIs (#apis)
- Auth (#auth)
- Cache (#cache)
- Data Validation and Serialization (#data-validation-and-serialization)
- Databases (#databases)
- Developer Tools (#developer-tools)
- Email (#email)
- Forms (#forms)
- Full-text Search (#full-text-search)
- Security (#security)
- Task Queues (#task-queues)
- Utils (#utils)
- Resources (#resources)
- Official Resources (#official-resources)
- External Resources (#external-resources)
- Community (#community)
- Conferences (#conferences)
- Meetups (#meetups)
- Podcasts (#podcasts)
- Tutorials (#tutorials)
- Courses (#courses)
- Books (#books)
- Videos (#videos)
- Hosting (#hosting)
- PaaS (#paas)
- IaaS (#iaas)
- Serverless (#serverless)
- Projects (#projects)
- Boilerplates (#boilerplates)
- Open Source Projects (#open-source-projects)
Third-Party Extensions
Admin
- Flask-Admin (https://github.com/pallets-eco/flask-admin) - Functional admin panel that provides a user interface for managing data based on your models.
APIs
RESTful API Support
- Eve (https://docs.python-eve.org) - RESTful API framework designed for human beings.
- Flask-Classful (https://flask-classful.readthedocs.io/) - Adds support for class-based views for setting up RESTful API route endpoints.
- Flask-MongoRest (https://github.com/closeio/flask-mongorest) - RESTful API framework wrapped around MongoEngine (http://mongoengine.org/).
- Flask-RESTful (https://flask-restful.readthedocs.io) - Quickly build RESTful APIs.
RESTful API + Swagger/OpenAPI Documentation Support
- APIFlask (https://github.com/apiflask/apiflask) - Integrates marshmallow for validation and serialization, and for OpenAPI generation with Swagger UI.
- Connexion (https://connexion.readthedocs.io) - Open source, OpenAPI-based, REST framework built on top of Flask.
- Flasgger (https://github.com/flasgger/flasgger) - OpenAPI and Swagger UI. Builds the API from Flasgger models, marshmallow models, dicts, or YAML files.
- Flask-Rebar (https://github.com/plangrid/flask-rebar) - Combines Flask, marshmallow (https://marshmallow.readthedocs.io/), and OpenAPI (https://www.openapis.org/) for robust REST services.
- Flask-RESTX (https://flask-restx.readthedocs.io) - Community-driven fork of Flask-RESTPlus (https://flask-restplus.readthedocs.io/) that makes it easy to build and document RESTful APIs with Flask.
- flask-smorest (https://github.com/marshmallow-code/flask-smorest/) - Marshmallow's official Flask REST integration. Uses marshmallow models for request/response validation and serialization, and generates OpenAPI with Swagger UI.
Swagger/OpenAPI Documentation Support
- SAFRS: Python OpenAPI & JSON:API Framework (https://github.com/thomaxxl/safrs) - 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 (https://flask-httpauth.readthedocs.io) - Authentication.
- Flask-Login (https://flask-login.readthedocs.io/) - Account management and authentication.
- Flask Principal (https://pythonhosted.org/Flask-Principal/) - Authorization.
- Flask-Security-Too (https://flask-security-too.readthedocs.io/en/stable/) - Account management, authentication, authorization.
- Flask-Session (https://flasksession.readthedocs.io/en/latest/) - Session managment.
- Flask-SimpleLogin (https://github.com/flask-extensions/Flask-SimpleLogin) - Authentication.
- Flask-User (https://flask-user.readthedocs.io) - Account management, authentication, authorization.
▐ Curious about the differences differences between Flask-User and Flask-Security? Review the Flask-User FAQ (https://flask-user.readthedocs.io/en/latest/faq.html).
JWT-based (for JSON Endpoints)
- Flask-JWT (https://pythonhosted.org/Flask-JWT/) - Basic support for working with JWTs.
- Flask-JWT-Extended (https://flask-jwt-extended.readthedocs.io) - Advanced support for working with JWTs.
- Flask-JWT-Router (https://github.com/joegasewicz/flask-jwt-router) - Adds authorized routes to a Flask app.
- Flask-Praetorian (https://flask-praetorian.readthedocs.io) - Authentication and authorization for Flask APIs.
OAuth
- Authlib (https://authlib.org/) - Library for building OAuth and OpenID clients and servers.
- Authomatic (https://github.com/authomatic/authomatic) - Framework agnostic library for Python web applications that simplifies authentication and authorization of users via OAuth and OpenID.
- Flask-Dance (https://github.com/singingwolfboy/flask-dance) - OAuth support via OAuthLib (https://oauthlib.readthedocs.io/).
Cache
- Flask-Caching (https://flask-caching.readthedocs.io/) - Caching support.
Data Validation and Serialization
- Flask-Marshmallow (https://flask-marshmallow.readthedocs.io) - Thin integration layer for Flask and marshmallow (an object serialization /deserialization library) that adds additional features to marshmallow.
- Flask-Pydantic (https://github.com/bauerji/flask-pydantic) - Pydantic (https://github.com/pydantic/pydantic) support.
Databases
ORMs
- Flask-Peewee (https://flask-peewee.readthedocs.io) - Support for Peewee, an ORM and database migration tool.
- Flask-Pony (https://pypi.org/project/Flask-Pony/) - Support for Pony ORM.
- Flask-SQLAlchemy (https://flask-sqlalchemy.palletsprojects.com) - Support for SQLAlchemy, a SQL toolkit and ORM.
ODMs
- Flask-MongoEngine (https://flask-mongoengine-3.readthedocs.io) - Bridges Flask and MongoEngine for working with MongoDB.
- Flask-PyMongo (https://flask-pymongo.readthedocs.io) - Bridges Flask and PyMongo for working with MongoDB.
Migrations
- Flask-Alembic (https://flask-alembic.readthedocs.io) - Configurable Alembic (https://alembic.sqlalchemy.org/) migration environment around a Flask-SQLAlchemy database for handling database migrations.
- Flask-DB (https://github.com/nickjj/flask-db) - Flask CLI extension that helps you migrate, drop, create and seed your SQL database.
- Flask-Migrate (https://flask-migrate.readthedocs.io) - Handles SQLAlchemy database migrations via Alembic.
▐ Curious about the differences between Alembic, Flask-Alembic, Flask-Migrate, and Flask-DB? Review this item (https://github.com/nickjj/flask-db#differences-between-alembic-flask-migrate-flask-alembic-and-flask-db) from Flask-DB's FAQ.
Other Tools
- Flask-Excel (https://github.com/pyexcel-webwares/Flask-Excel) - Uses pyexcel (https://github.com/pyexcel/pyexcel) to read, manipulate, and write data in different Excel formats: csv, ods, xls, xlsx and xlsm.
Developer Tools
Debugging
- Flask-DebugToolbar (https://flask-debugtoolbar.readthedocs.io) - Port of Django's debug toolbar for Flask.
- Flask-Profiler (https://github.com/muatik/flask-profiler) - Endpoint analyzer/profiler.
Fixtures
- Flask-Fixtures (https://github.com/croach/Flask-Fixtures) - Create database fixtures from JSON or YAML.
- Mixer (https://mixer.readthedocs.io) - Object generation tool.
Logging
- Rollbar (https://rollbar.com/platforms/flask-error-tracking/) - Flask error logging with Rollbar.
Monitoring
- Airbrake (https://docs.airbrake.io/docs/platforms/framework/python/flask/) - Airbrake Flask integration.
- Elastic APM Agent (https://www.elastic.co/guide/en/apm/agent/python/current/flask-support.html) - Elastic APM Flask integration.
- Flask Monitoring Dashboard (https://flask-monitoringdashboard.readthedocs.io) - Dashboard for automatic monitoring of Flask web-services.
- Sentry Python SDK (https://sentry.io/for/flask/) - Sentry SDK Flask integration.
Tracing
- OpenTelemetry (https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/flask/flask.html) - OpenTelemetry Flask Instrumentation.
Testing
- Flask-Testing (https://pythonhosted.org/Flask-Testing/) - Unittest extensions.
- Pytest-Flask (https://github.com/pytest-dev/pytest-flask) - Pytest support for testing Flask applications.
Email
- Flask-Mail (https://flask-mail.readthedocs.io/) - Provides simple email sending capabilities.
- Flask-Mailman (https://pypi.org/project/flask-mailman/) - A port of django.mail for Flask.
- Flask-Mail-SendGrid (https://github.com/hamano/flask-mail-sendgrid) - Provides simple email base on Flask-Mail for sending email by SendGrid.
Forms
- Flask-WTF (https://flask-wtf.readthedocs.io) - Integrates Flask with WTForms (provides CSRF protection as well).
Full-text Search
- flask-msearch (https://github.com/honmaple/flask-msearch) - Full-text search.
- Flask-WhooshAlchemy3 (https://github.com/blakev/Flask-WhooshAlchemy3) - Full-text search + Whoosh indexing capabilities for Flask-SQLAlchemy.
- SQLAlchemy-Searchable (https://sqlalchemy-searchable.readthedocs.io) - Provides full-text search capabilities for SQLAlchemy models.
Security
- Flask-Argon2 (https://github.com/red-coracle/flask-argon2) - Provides argon2 hashing utilities.
- Flask-Bcrypt (https://flask-bcrypt.readthedocs.io) - Provides bcrypt hashing utilities.
- Flask-CORS (https://flask-cors.readthedocs.io) - Cross Origin Resource Sharing (CORS) handling.
- Flask-SeaSurf (https://github.com/maxcountryman/flask-seasurf/) - Cross-site request forgery (CSRF) prevention.
- Flask-Talisman (https://github.com/wntrblm/flask-talisman) - HTTPS and security headers.
Task Queues
- Celery (https://docs.celeryproject.org/) - The most commonly used Python library for handling asynchronous tasks and scheduling.
- Dramatiq (https://flask-dramatiq.rtfd.io/) - Fast and reliable alternative to Celery.
- Flask-RQ (https://github.com/pallets-eco/flask-rq) - RQ (https://python-rq.org/) (Redis Queue) integration.
- Huey (https://huey.readthedocs.io) - Redis (https://redis.io/)-based task queue that aims to provide a simple, yet flexible framework for executing tasks.
Utils
- Flask-Babel (https://github.com/python-babel/flask-babel) - Support for internationalization (i18n) and localization (l10n).
- Flask-File-Upload (https://github.com/joegasewicz/flask-file-upload) - Easy file uploads.
- Flask-FlatPages (https://pythonhosted.org/Flask-FlatPages/) - Provides flat static pages based on text files.
- Frozen-Flask (https://github.com/Frozen-Flask/Frozen-Flask) - Freezes a Flask application into a set of static files.
- Flask-GraphQL (https://github.com/graphql-python/flask-graphql) - GraphQL support.
- Flask-Injector (https://github.com/python-injector/flask_injector) - Adds support for dependency injection.
- Flask-Limiter (https://flask-limiter.readthedocs.io) - Rate limiting features to Flask routes.
- Flask-Moment (https://github.com/miguelgrinberg/Flask-Moment) - Moment.js date and time formatting helpers for Jinja2 templates.
- Flask-Paginate (https://pythonhosted.org/Flask-paginate/) - Pagination support.
- Flask-Reactize (https://github.com/Azure-Samples/flask-reactize) - Hides the Node.js development backend for React behind a Flask application.
- Flask-Shell2HTTP (https://github.com/Eshaan7/Flask-Shell2HTTP) - RESTful/HTTP wrapper for Python's subprocess API, so you can convert any command-line tool into a RESTful API service.
- Flask-Sitemap (https://flask-sitemap.readthedocs.io) - Sitemap generation.
- Flask-SocketIO (https://flask-socketio.readthedocs.io) - Socket.IO integration.
- Flask-SSE (https://flask-sse.readthedocs.io) - Streaming with flask.
Resources
Official Resources
- Project Website (https://palletsprojects.com/p/flask/) - Official Flask website.
- Documentation (https://flask.palletsprojects.com) - Comprehensive documentation for all Flask versions.
- Flaskr Tutorial (https://flask.palletsprojects.com/tutorial/) - Build a basic blog application called Flaskr.
- Source Code (https://github.com/pallets/flask) - Hosted on GitHub.
External Resources
- Full Stack Python's Flask Page (https://www.fullstackpython.com/flask.html) - Explanation of Flask philosophy and links to other resources and tutorials.
- Miguel Grinberg's Blog (https://blog.miguelgrinberg.com/category/Flask) - Multiple Flask-specific tutorials.
- Nick Janetakis's Blog (https://nickjanetakis.com/blog/tag/flask-tips-tricks-and-tutorials) - Flask Tips, Tricks and Tutorials.
- Patrick Kennedy's Blog (https://www.patricksoftwareblog.com/) - Numerous tutorials on learning Python web application development with Flask.
- RealPython (https://realpython.com/tutorials/flask/) - Many high-quality tutorials on Flask.
- TestDriven.io (https://testdriven.io/blog/topics/flask/) - Up-to-date tutorials on Flask.
Community
- Discord (https://discord.com/invite/t6rrQZH) - Pallets Projects community on Discord (use the #get-help channel for Flask support).
- IRC Channel - Chat with other Flask users on IRC channel #pocoo on FreeNode.
- Mailing List (https://mail.python.org/mailman/listinfo/flask) - General discussion of Flask and the Pallets projects (flask@python.org).
- Reddit (https://www.reddit.com/r/flask/) - Flask subreddit.
- Stack Overflow (https://stackoverflow.com/questions/tagged/flask) - Questions tagged flask.
- Twitter (https://twitter.com/PalletsTeam) - For official announcements on updates, security fixes, etc.
Conferences
- FlaskCon (https://twitter.com/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 (https://twitter.com/pyconweb) - Covers Django, Tornado, Flask, API frameworks. AsyncIO, networking, Frontend, JavaScript, and web security.
- Flask Conf Brazil (https://2019.flask.python.org.br/) - Conference for the developers and users of Flask.
- PyCon US (https://us.pycon.org/) - The largest annual gathering for the community using and developing the open-source Python programming language.
- PyCon Australia (https://pycon-au.org/) - National conference organized for the Python Programming Community.
- Euro Python (https://europython.eu/) - The largest Python conference in Europe.
- PyCon (https://pycon.org/) - Complete listing of all PyCons globally.
Meetups
- Flask (https://www.meetup.com/topics/flask/all/) - 40+ groups in 20 countries.
- Python Web Development (https://www.meetup.com/topics/python-web-development/all/) - 600+ groups in 81 countries.
- Python (https://www.meetup.com/topics/python/all/) - 2,400+ groups in 100 countries.
Podcasts
- TalkPython (https://talkpython.fm/) - The leading Python podcast with several episodes on Flask.
- Podcast Init (https://www.pythonpodcast.com/) - A popular Python podcast that features Flask guests on occasion.
- Python Bytes (https://pythonbytes.fm/) - Another Python podcast that discusses Flask from time to time.
- Full Stack Python's Best Python Podcasts Page (https://www.fullstackpython.com/best-python-podcasts.html) - A list of active Python-specific podcasts.
Tutorials
- Flask Mega-Tutorial (https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) - Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework.
- Flaskr TDD (https://github.com/mjhea0/flaskr-tdd) - Intro to Flask, Test-Driven Development (TDD), and JavaScript.
- Make a Web App Using Python & Flask! (https://aryaboudaie.com/python/technical/educational/web/flask/2018/10/17/flask.html) - Creating a Python Website from the Bottom Up.
Courses
- Developing Web Applications with Python and Flask (https://testdriven.io/courses/learn-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 (https://testdriven.io/courses/tdd-flask/) - Learn how to build, test, and deploy a production-grade microservice powered by Python, Flask, and Docker.
- Authentication with Flask, React, and Docker (https://testdriven.io/courses/auth-flask-react/) - Learn how to add authentication to a Flask and React microservice!.
- Deploying a Flask and React Microservice to AWS ECS (https://testdriven.io/courses/aws-flask-react/) - Learn how to deploy microservices to Amazon ECS powered by Flask, React, and Docker.
- Build a SAAS App with Flask (https://buildasaasappwithflask.com) - Learn to build web applications with Flask and Docker.
- Full Stack Foundations (https://www.udacity.com/course/full-stack-foundations--ud088) - Build a data-driven web app with Python.
- Designing RESTful APIs (https://www.udacity.com/course/designing-restful-apis--ud388) - Build and Secure a backend API server.
Books
- Flask Web Development (https://www.oreilly.com/library/view/flask-web-development/9781491991725/) - Learn the framework from the ground up by developing, step-by-step, a real-world project.
- Real Python (https://realpython.com) - Learn Python programming, by example.
- Explore Flask (https://explore-flask.readthedocs.io/) - Best practices and patterns for developing web applications with Flask.
Videos
- PyVideo (https://pyvideo.org/search.html?q=flask)
- Practical Flask Web Development Tutorials (https://www.youtube.com/playlist?list=PLQVvvaa0QuDc_owjTbIY4rbgXOFkUYOUB)
- Python Flask Tutorial: Full-Featured Web App (https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH)
- Discover Flask - Full Stack Web Development with Flask (https://github.com/realpython/discover-flask)
Hosting
PaaS
(Platforms-as-a-Service)
- Heroku (https://www.heroku.com/)
- PythonAnywhere (https://www.pythonanywhere.com/details/flask_hosting)
- AWS Elastic Beanstalk (https://aws.amazon.com/elasticbeanstalk/)
- Google App Engine (https://cloud.google.com/appengine/)
- Microsoft Azure App Service (https://azure.microsoft.com/en-us/products/app-service/)
- Divio (https://www.divio.com)
- Render (https://render.com/)
IaaS
(Infrastructure-as-a-Service)
- AWS EC2 (https://aws.amazon.com/ec2/)
- Google Compute Engine (https://cloud.google.com/compute/)
- Digital Ocean (https://www.digitalocean.com/)
- Linode (https://www.linode.com/)
Serverless
Frameworks:
- Zappa (https://github.com/Miserlou/Zappa)
- Chalice (https://github.com/aws/chalice)
Compute:
- AWS Lambda (https://aws.amazon.com/lambda/)
- Google Cloud Functions (https://cloud.google.com/functions/)
- Azure Functions (https://azure.microsoft.com/en-us/products/functions/)
Projects
Boilerplates
- cookiecutter-flask (https://github.com/cookiecutter-flask/cookiecutter-flask) - With Bootstrap 4, asset bundling annd minification with webpack, starter templates, and registration/authentication.
- Cookiecutter Flask Skeleton (https://github.com/testdrivenio/cookiecutter-flask-skeleton) - Flask starter project for Cookiecutter (https://github.com/cookiecutter/cookiecutter).
- Flask-AppBuilder (https://github.com/dpgaspar/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 (http://hack4impact.github.io/flask-base/) - Includes SQLAlchemy, Redis, User Authentication, and more.
- Flask-Bootstrap (https://github.com/esbullington/flask-bootstrap) - Integrated SQLAlchemy, authentication, and Bootstrap frontend.
- flask-htmx-boilerplate (https://github.com/marcusschiesser/flask-htmx-boilerplate) - Boilerplate template for a Python Flask application with HTMX and Tailwind CSS.
- uwsgi-nginx-flask-docker (https://github.com/tiangolo/uwsgi-nginx-flask-docker) - Docker image with uWSGI and Nginx for Flask applications in Python running in a single container.
- React-Redux-Flask (https://github.com/dternyak/React-Redux-Flask) - Boilerplate application for a Flask JWT Backend and a React/Redux Front-End with Material UI.
- MVC Flask (https://github.com/marcuxyz/mvc-flask) - You can use the mvc pattern in your flask application using this extension.
Open Source Projects
- ActorCloud (https://github.com/actorcloud/ActorCloud) - Open-source IoT Platform.
- Airflow (https://github.com/apache/airflow/tree/master/airflow/www)
- Busy Beaver (https://github.com/busy-beaver-dev/busy-beaver) - Chicago Python's Community Engagement Slack bot.
- FlaskBB (https://github.com/flaskbb/flaskbb) - Classic forum software.
- Indico (https://github.com/indico/indico) - Feature-rich event management system, made at CERN (https://home.cern/).
- Quokka CMS (https://github.com/quokkaproject) - The happiest CMS in the world.
- PythonBuddy (https://github.com/ethanchewy/PythonBuddy) - Online Python Editor with live syntax checking and execution.
- Redash (https://github.com/getredash/redash) - Designed to enable anyone, regardless of the level of technical sophistication, to harness the power of data big and small.
- SkyLines (https://github.com/skylines-project/skylines) - Live tracking, flight database, and competition framework.
- Security Monkey (https://github.com/Netflix/security_monkey) - Monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
- SecureDrop (https://github.com/freedomofpress/securedrop) - Open-source whistleblower submission system that media organizations can use to securely accept documents from, and communicate with anonymous sources.
- SimpleLogin (https://github.com/simple-login/app) - Protect your online identity with email alias.
- sr.ht (https://git.sr.ht/~sircmpwn/core.sr.ht/tree) - Git hosting service (check out Why I chose Flask to build sr.ht's mini-services (https://drewdevault.com/2019/01/30/Why-I-built-sr.ht-with-Flask.html) as well).
- Timesketch (https://github.com/google/timesketch) - Collaborative forensic timeline analysis.
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
▐ NOTE: This project is powered by TestDriven.io (https://testdriven.io/). Please support this open source project by purchasing one of our Flask courses. Learn how to build, test, and deploy microservices powered by Docker, Flask, and React!
flask Github: https://github.com/mjhea0/awesome-flask
▐ A curated list of awesome things related to Flask.
Flask (https://flask.palletsprojects.com/) is a lightweight WSGI web application framework written in Python.
Contents
- Third-Party Extensions (#third-party-extensions)
- Admin (#admin)
- APIs (#apis)
- Auth (#auth)
- Cache (#cache)
- Data Validation and Serialization (#data-validation-and-serialization)
- Databases (#databases)
- Developer Tools (#developer-tools)
- Email (#email)
- Forms (#forms)
- Full-text Search (#full-text-search)
- Security (#security)
- Task Queues (#task-queues)
- Utils (#utils)
- Resources (#resources)
- Official Resources (#official-resources)
- External Resources (#external-resources)
- Community (#community)
- Conferences (#conferences)
- Meetups (#meetups)
- Podcasts (#podcasts)
- Tutorials (#tutorials)
- Courses (#courses)
- Books (#books)
- Videos (#videos)
- Hosting (#hosting)
- PaaS (#paas)
- IaaS (#iaas)
- Serverless (#serverless)
- Projects (#projects)
- Boilerplates (#boilerplates)
- Open Source Projects (#open-source-projects)
Third-Party Extensions
Admin
- Flask-Admin (https://github.com/pallets-eco/flask-admin) - Functional admin panel that provides a user interface for managing data based on your models.
APIs
RESTful API Support
- Eve (https://docs.python-eve.org) - RESTful API framework designed for human beings.
- Flask-Classful (https://flask-classful.readthedocs.io/) - Adds support for class-based views for setting up RESTful API route endpoints.
- Flask-MongoRest (https://github.com/closeio/flask-mongorest) - RESTful API framework wrapped around MongoEngine (http://mongoengine.org/).
- Flask-RESTful (https://flask-restful.readthedocs.io) - Quickly build RESTful APIs.
RESTful API + Swagger/OpenAPI Documentation Support
- APIFlask (https://github.com/apiflask/apiflask) - Integrates marshmallow for validation and serialization, and for OpenAPI generation with Swagger UI.
- Connexion (https://connexion.readthedocs.io) - Open source, OpenAPI-based, REST framework built on top of Flask.
- Flasgger (https://github.com/flasgger/flasgger) - OpenAPI and Swagger UI. Builds the API from Flasgger models, marshmallow models, dicts, or YAML files.
- Flask-Rebar (https://github.com/plangrid/flask-rebar) - Combines Flask, marshmallow (https://marshmallow.readthedocs.io/), and OpenAPI (https://www.openapis.org/) for robust REST services.
- Flask-RESTX (https://flask-restx.readthedocs.io) - Community-driven fork of Flask-RESTPlus (https://flask-restplus.readthedocs.io/) that makes it easy to build and document RESTful APIs with Flask.
- flask-smorest (https://github.com/marshmallow-code/flask-smorest/) - Marshmallow's official Flask REST integration. Uses marshmallow models for request/response validation and serialization, and generates OpenAPI with Swagger UI.
Swagger/OpenAPI Documentation Support
- SAFRS: Python OpenAPI & JSON:API Framework (https://github.com/thomaxxl/safrs) - 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 (https://flask-httpauth.readthedocs.io) - Authentication.
- Flask-Login (https://flask-login.readthedocs.io/) - Account management and authentication.
- Flask Principal (https://pythonhosted.org/Flask-Principal/) - Authorization.
- Flask-Security-Too (https://flask-security-too.readthedocs.io/en/stable/) - Account management, authentication, authorization.
- Flask-Session (https://flasksession.readthedocs.io/en/latest/) - Session managment.
- Flask-SimpleLogin (https://github.com/flask-extensions/Flask-SimpleLogin) - Authentication.
- Flask-User (https://flask-user.readthedocs.io) - Account management, authentication, authorization.
▐ Curious about the differences differences between Flask-User and Flask-Security? Review the Flask-User FAQ (https://flask-user.readthedocs.io/en/latest/faq.html).
JWT-based (for JSON Endpoints)
- Flask-JWT (https://pythonhosted.org/Flask-JWT/) - Basic support for working with JWTs.
- Flask-JWT-Extended (https://flask-jwt-extended.readthedocs.io) - Advanced support for working with JWTs.
- Flask-JWT-Router (https://github.com/joegasewicz/flask-jwt-router) - Adds authorized routes to a Flask app.
- Flask-Praetorian (https://flask-praetorian.readthedocs.io) - Authentication and authorization for Flask APIs.
OAuth
- Authlib (https://authlib.org/) - Library for building OAuth and OpenID clients and servers.
- Authomatic (https://github.com/authomatic/authomatic) - Framework agnostic library for Python web applications that simplifies authentication and authorization of users via OAuth and OpenID.
- Flask-Dance (https://github.com/singingwolfboy/flask-dance) - OAuth support via OAuthLib (https://oauthlib.readthedocs.io/).
Cache
- Flask-Caching (https://flask-caching.readthedocs.io/) - Caching support.
Data Validation and Serialization
- Flask-Marshmallow (https://flask-marshmallow.readthedocs.io) - Thin integration layer for Flask and marshmallow (an object serialization /deserialization library) that adds additional features to marshmallow.
- Flask-Pydantic (https://github.com/bauerji/flask-pydantic) - Pydantic (https://github.com/pydantic/pydantic) support.
Databases
ORMs
- Flask-Peewee (https://flask-peewee.readthedocs.io) - Support for Peewee, an ORM and database migration tool.
- Flask-Pony (https://pypi.org/project/Flask-Pony/) - Support for Pony ORM.
- Flask-SQLAlchemy (https://flask-sqlalchemy.palletsprojects.com) - Support for SQLAlchemy, a SQL toolkit and ORM.
ODMs
- Flask-MongoEngine (https://flask-mongoengine-3.readthedocs.io) - Bridges Flask and MongoEngine for working with MongoDB.
- Flask-PyMongo (https://flask-pymongo.readthedocs.io) - Bridges Flask and PyMongo for working with MongoDB.
Migrations
- Flask-Alembic (https://flask-alembic.readthedocs.io) - Configurable Alembic (https://alembic.sqlalchemy.org/) migration environment around a Flask-SQLAlchemy database for handling database migrations.
- Flask-DB (https://github.com/nickjj/flask-db) - Flask CLI extension that helps you migrate, drop, create and seed your SQL database.
- Flask-Migrate (https://flask-migrate.readthedocs.io) - Handles SQLAlchemy database migrations via Alembic.
▐ Curious about the differences between Alembic, Flask-Alembic, Flask-Migrate, and Flask-DB? Review this item (https://github.com/nickjj/flask-db#differences-between-alembic-flask-migrate-flask-alembic-and-flask-db) from Flask-DB's FAQ.
Other Tools
- Flask-Excel (https://github.com/pyexcel-webwares/Flask-Excel) - Uses pyexcel (https://github.com/pyexcel/pyexcel) to read, manipulate, and write data in different Excel formats: csv, ods, xls, xlsx and xlsm.
Developer Tools
Debugging
- Flask-DebugToolbar (https://flask-debugtoolbar.readthedocs.io) - Port of Django's debug toolbar for Flask.
- Flask-Profiler (https://github.com/muatik/flask-profiler) - Endpoint analyzer/profiler.
Fixtures
- Flask-Fixtures (https://github.com/croach/Flask-Fixtures) - Create database fixtures from JSON or YAML.
- Mixer (https://mixer.readthedocs.io) - Object generation tool.
Logging
- Rollbar (https://rollbar.com/platforms/flask-error-tracking/) - Flask error logging with Rollbar.
Monitoring
- Airbrake (https://docs.airbrake.io/docs/platforms/framework/python/flask/) - Airbrake Flask integration.
- Elastic APM Agent (https://www.elastic.co/guide/en/apm/agent/python/current/flask-support.html) - Elastic APM Flask integration.
- Flask Monitoring Dashboard (https://flask-monitoringdashboard.readthedocs.io) - Dashboard for automatic monitoring of Flask web-services.
- Sentry Python SDK (https://sentry.io/for/flask/) - Sentry SDK Flask integration.
Tracing
- OpenTelemetry (https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/flask/flask.html) - OpenTelemetry Flask Instrumentation.
Testing
- Flask-Testing (https://pythonhosted.org/Flask-Testing/) - Unittest extensions.
- Pytest-Flask (https://github.com/pytest-dev/pytest-flask) - Pytest support for testing Flask applications.
- Flask-Mail (https://flask-mail.readthedocs.io/) - Provides simple email sending capabilities.
- Flask-Mailman (https://pypi.org/project/flask-mailman/) - A port of django.mail for Flask.
- Flask-Mail-SendGrid (https://github.com/hamano/flask-mail-sendgrid) - Provides simple email base on Flask-Mail for sending email by SendGrid.
Forms
- Flask-WTF (https://flask-wtf.readthedocs.io) - Integrates Flask with WTForms (provides CSRF protection as well).
Full-text Search
- flask-msearch (https://github.com/honmaple/flask-msearch) - Full-text search.
- Flask-WhooshAlchemy3 (https://github.com/blakev/Flask-WhooshAlchemy3) - Full-text search + Whoosh indexing capabilities for Flask-SQLAlchemy.
- SQLAlchemy-Searchable (https://sqlalchemy-searchable.readthedocs.io) - Provides full-text search capabilities for SQLAlchemy models.
Security
- Flask-Argon2 (https://github.com/red-coracle/flask-argon2) - Provides argon2 hashing utilities.
- Flask-Bcrypt (https://flask-bcrypt.readthedocs.io) - Provides bcrypt hashing utilities.
- Flask-CORS (https://flask-cors.readthedocs.io) - Cross Origin Resource Sharing (CORS) handling.
- Flask-SeaSurf (https://github.com/maxcountryman/flask-seasurf/) - Cross-site request forgery (CSRF) prevention.
- Flask-Talisman (https://github.com/wntrblm/flask-talisman) - HTTPS and security headers.
Task Queues
- Celery (https://docs.celeryproject.org/) - The most commonly used Python library for handling asynchronous tasks and scheduling.
- Dramatiq (https://flask-dramatiq.rtfd.io/) - Fast and reliable alternative to Celery.
- Flask-RQ (https://github.com/pallets-eco/flask-rq) - RQ (https://python-rq.org/) (Redis Queue) integration.
- Huey (https://huey.readthedocs.io) - Redis (https://redis.io/)-based task queue that aims to provide a simple, yet flexible framework for executing tasks.
Utils
- Flask-Babel (https://github.com/python-babel/flask-babel) - Support for internationalization (i18n) and localization (l10n).
- Flask-File-Upload (https://github.com/joegasewicz/flask-file-upload) - Easy file uploads.
- Flask-FlatPages (https://pythonhosted.org/Flask-FlatPages/) - Provides flat static pages based on text files.
- Frozen-Flask (https://github.com/Frozen-Flask/Frozen-Flask) - Freezes a Flask application into a set of static files.
- Flask-GraphQL (https://github.com/graphql-python/flask-graphql) - GraphQL support.
- Flask-Injector (https://github.com/python-injector/flask_injector) - Adds support for dependency injection.
- Flask-Limiter (https://flask-limiter.readthedocs.io) - Rate limiting features to Flask routes.
- Flask-Moment (https://github.com/miguelgrinberg/Flask-Moment) - Moment.js date and time formatting helpers for Jinja2 templates.
- Flask-Paginate (https://pythonhosted.org/Flask-paginate/) - Pagination support.
- Flask-Reactize (https://github.com/Azure-Samples/flask-reactize) - Hides the Node.js development backend for React behind a Flask application.
- Flask-Shell2HTTP (https://github.com/Eshaan7/Flask-Shell2HTTP) - RESTful/HTTP wrapper for Python's subprocess API, so you can convert any command-line tool into a RESTful API service.
- Flask-Sitemap (https://flask-sitemap.readthedocs.io) - Sitemap generation.
- Flask-SocketIO (https://flask-socketio.readthedocs.io) - Socket.IO integration.
- Flask-SSE (https://flask-sse.readthedocs.io) - Streaming with flask.
Resources
Official Resources
- Project Website (https://palletsprojects.com/p/flask/) - Official Flask website.
- Documentation (https://flask.palletsprojects.com) - Comprehensive documentation for all Flask versions.
- Flaskr Tutorial (https://flask.palletsprojects.com/tutorial/) - Build a basic blog application called Flaskr.
- Source Code (https://github.com/pallets/flask) - Hosted on GitHub.
External Resources
- Full Stack Python's Flask Page (https://www.fullstackpython.com/flask.html) - Explanation of Flask philosophy and links to other resources and tutorials.
- Miguel Grinberg's Blog (https://blog.miguelgrinberg.com/category/Flask) - Multiple Flask-specific tutorials.
- Nick Janetakis's Blog (https://nickjanetakis.com/blog/tag/flask-tips-tricks-and-tutorials) - Flask Tips, Tricks and Tutorials.
- Patrick Kennedy's Blog (https://www.patricksoftwareblog.com/) - Numerous tutorials on learning Python web application development with Flask.
- RealPython (https://realpython.com/tutorials/flask/) - Many high-quality tutorials on Flask.
- TestDriven.io (https://testdriven.io/blog/topics/flask/) - Up-to-date tutorials on Flask.
Community
- Discord (https://discord.com/invite/t6rrQZH) - Pallets Projects community on Discord (use the #get-help channel for Flask support).
- IRC Channel - Chat with other Flask users on IRC channel #pocoo on FreeNode.
- Mailing List (https://mail.python.org/mailman/listinfo/flask) - General discussion of Flask and the Pallets projects (flask@python.org).
- Reddit (https://www.reddit.com/r/flask/) - Flask subreddit.
- Stack Overflow (https://stackoverflow.com/questions/tagged/flask) - Questions tagged flask.
- Twitter (https://twitter.com/PalletsTeam) - For official announcements on updates, security fixes, etc.
Conferences
- FlaskCon (https://twitter.com/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 (https://twitter.com/pyconweb) - Covers Django, Tornado, Flask, API frameworks. AsyncIO, networking, Frontend, JavaScript, and web security.
- Flask Conf Brazil (https://2019.flask.python.org.br/) - Conference for the developers and users of Flask.
- PyCon US (https://us.pycon.org/) - The largest annual gathering for the community using and developing the open-source Python programming language.
- PyCon Australia (https://pycon-au.org/) - National conference organized for the Python Programming Community.
- Euro Python (https://europython.eu/) - The largest Python conference in Europe.
- PyCon (https://pycon.org/) - Complete listing of all PyCons globally.
Meetups
- Flask (https://www.meetup.com/topics/flask/all/) - 40+ groups in 20 countries.
- Python Web Development (https://www.meetup.com/topics/python-web-development/all/) - 600+ groups in 81 countries.
- Python (https://www.meetup.com/topics/python/all/) - 2,400+ groups in 100 countries.
Podcasts
- TalkPython (https://talkpython.fm/) - The leading Python podcast with several episodes on Flask.
- Podcast Init (https://www.pythonpodcast.com/) - A popular Python podcast that features Flask guests on occasion.
- Python Bytes (https://pythonbytes.fm/) - Another Python podcast that discusses Flask from time to time.
- Full Stack Python's Best Python Podcasts Page (https://www.fullstackpython.com/best-python-podcasts.html) - A list of active Python-specific podcasts.
Tutorials
- Flask Mega-Tutorial (https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) - Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework.
- Flaskr TDD (https://github.com/mjhea0/flaskr-tdd) - Intro to Flask, Test-Driven Development (TDD), and JavaScript.
- Make a Web App Using Python & Flask! (https://aryaboudaie.com/python/technical/educational/web/flask/2018/10/17/flask.html) - Creating a Python Website from the Bottom Up.
Courses
- Developing Web Applications with Python and Flask (https://testdriven.io/courses/learn-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 (https://testdriven.io/courses/tdd-flask/) - Learn how to build, test, and deploy a production-grade microservice powered by Python, Flask, and Docker.
- Authentication with Flask, React, and Docker (https://testdriven.io/courses/auth-flask-react/) - Learn how to add authentication to a Flask and React microservice!.
- Deploying a Flask and React Microservice to AWS ECS (https://testdriven.io/courses/aws-flask-react/) - Learn how to deploy microservices to Amazon ECS powered by Flask, React, and Docker.
- Build a SAAS App with Flask (https://buildasaasappwithflask.com) - Learn to build web applications with Flask and Docker.
- Full Stack Foundations (https://www.udacity.com/course/full-stack-foundations--ud088) - Build a data-driven web app with Python.
- Designing RESTful APIs (https://www.udacity.com/course/designing-restful-apis--ud388) - Build and Secure a backend API server.
Books
- Flask Web Development (https://www.oreilly.com/library/view/flask-web-development/9781491991725/) - Learn the framework from the ground up by developing, step-by-step, a real-world project.
- Real Python (https://realpython.com) - Learn Python programming, by example.
- Explore Flask (https://explore-flask.readthedocs.io/) - Best practices and patterns for developing web applications with Flask.
Videos
- PyVideo (https://pyvideo.org/search.html?q=flask)
- Practical Flask Web Development Tutorials (https://www.youtube.com/playlist?list=PLQVvvaa0QuDc_owjTbIY4rbgXOFkUYOUB)
- Python Flask Tutorial: Full-Featured Web App (https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH)
- Discover Flask - Full Stack Web Development with Flask (https://github.com/realpython/discover-flask)
Hosting
PaaS
(Platforms-as-a-Service)
- Heroku (https://www.heroku.com/)
- PythonAnywhere (https://www.pythonanywhere.com/details/flask_hosting)
- AWS Elastic Beanstalk (https://aws.amazon.com/elasticbeanstalk/)
- Google App Engine (https://cloud.google.com/appengine/)
- Microsoft Azure App Service (https://azure.microsoft.com/en-us/products/app-service/)
- Divio (https://www.divio.com)
- Render (https://render.com/)
IaaS
(Infrastructure-as-a-Service)
- AWS EC2 (https://aws.amazon.com/ec2/)
- Google Compute Engine (https://cloud.google.com/compute/)
- Digital Ocean (https://www.digitalocean.com/)
- Linode (https://www.linode.com/)
Serverless
Frameworks:
- Zappa (https://github.com/Miserlou/Zappa)
- Chalice (https://github.com/aws/chalice)
Compute:
- AWS Lambda (https://aws.amazon.com/lambda/)
- Google Cloud Functions (https://cloud.google.com/functions/)
- Azure Functions (https://azure.microsoft.com/en-us/products/functions/)
Projects
Boilerplates
- cookiecutter-flask (https://github.com/cookiecutter-flask/cookiecutter-flask) - With Bootstrap 4, asset bundling annd minification with webpack, starter templates, and registration/authentication.
- Cookiecutter Flask Skeleton (https://github.com/testdrivenio/cookiecutter-flask-skeleton) - Flask starter project for Cookiecutter (https://github.com/cookiecutter/cookiecutter).
- Flask-AppBuilder (https://github.com/dpgaspar/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 (http://hack4impact.github.io/flask-base/) - Includes SQLAlchemy, Redis, User Authentication, and more.
- Flask-Bootstrap (https://github.com/esbullington/flask-bootstrap) - Integrated SQLAlchemy, authentication, and Bootstrap frontend.
- flask-htmx-boilerplate (https://github.com/marcusschiesser/flask-htmx-boilerplate) - Boilerplate template for a Python Flask application with HTMX and Tailwind CSS.
- uwsgi-nginx-flask-docker (https://github.com/tiangolo/uwsgi-nginx-flask-docker) - Docker image with uWSGI and Nginx for Flask applications in Python running in a single container.
- React-Redux-Flask (https://github.com/dternyak/React-Redux-Flask) - Boilerplate application for a Flask JWT Backend and a React/Redux Front-End with Material UI.
- MVC Flask (https://github.com/marcuxyz/mvc-flask) - You can use the mvc pattern in your flask application using this extension.
Open Source Projects
- ActorCloud (https://github.com/actorcloud/ActorCloud) - Open-source IoT Platform.
- Airflow (https://github.com/apache/airflow/tree/master/airflow/www)
- Busy Beaver (https://github.com/busy-beaver-dev/busy-beaver) - Chicago Python's Community Engagement Slack bot.
- FlaskBB (https://github.com/flaskbb/flaskbb) - Classic forum software.
- Indico (https://github.com/indico/indico) - Feature-rich event management system, made at CERN (https://home.cern/).
- Quokka CMS (https://github.com/quokkaproject) - The happiest CMS in the world.
- PythonBuddy (https://github.com/ethanchewy/PythonBuddy) - Online Python Editor with live syntax checking and execution.
- Redash (https://github.com/getredash/redash) - Designed to enable anyone, regardless of the level of technical sophistication, to harness the power of data big and small.
- SkyLines (https://github.com/skylines-project/skylines) - Live tracking, flight database, and competition framework.
- Security Monkey (https://github.com/Netflix/security_monkey) - Monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
- SecureDrop (https://github.com/freedomofpress/securedrop) - Open-source whistleblower submission system that media organizations can use to securely accept documents from, and communicate with anonymous sources.
- SimpleLogin (https://github.com/simple-login/app) - Protect your online identity with email alias.
- sr.ht (https://git.sr.ht/~sircmpwn/core.sr.ht/tree) - Git hosting service (check out Why I chose Flask to build sr.ht's mini-services (https://drewdevault.com/2019/01/30/Why-I-built-sr.ht-with-Flask.html) as well).
- Timesketch (https://github.com/google/timesketch) - Collaborative forensic timeline analysis.
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
▐ NOTE: This project is powered by TestDriven.io (https://testdriven.io/). Please support this open source project by purchasing one of our Flask courses. Learn how to build, test, and deploy microservices powered by Docker, Flask, and React!
flask Github: https://github.com/mjhea0/awesome-flask