├── .github
├── FUNDING.yml
└── workflows
│ ├── ci.yml
│ └── expired-links.yml
├── .gitignore
├── LICENSE
├── README.md
├── contributing.md
└── flask-logo.svg
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | github: mjhea0
2 |
--------------------------------------------------------------------------------
/.github/workflows/ci.yml:
--------------------------------------------------------------------------------
1 | name: Lint
2 |
3 | on:
4 | - push
5 | - pull_request
6 |
7 | jobs:
8 | awesome-lint:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - uses: actions/checkout@v2
12 | with:
13 | fetch-depth: 0
14 | - uses: actions/setup-node@v1
15 | with:
16 | node-version: 18
17 | - run: npm install --global awesome-lint
18 | - run: awesome-lint README.md
19 | awesome-bot:
20 | runs-on: ubuntu-latest
21 | steps:
22 | - uses: actions/checkout@v2
23 | with:
24 | fetch-depth: 0
25 | - uses: actions/setup-ruby@v1
26 | with:
27 | ruby-version: 3.0
28 | - run: gem install awesome_bot
29 | # - run: awesome_bot README.md --allow 302,307 --allow-ssl --allow-dupe --white-list "linode.com"
30 | - run: awesome_bot README.md --allow 302 --white-list "linode.com","https://europython.eu/","https://twitter.com/PalletsTeam","https://www.reddit.com/r/flask/"
31 |
--------------------------------------------------------------------------------
/.github/workflows/expired-links.yml:
--------------------------------------------------------------------------------
1 | name: Check Markdown links
2 |
3 | on:
4 | push:
5 | branches:
6 | - master
7 | schedule:
8 | # Run every first day at 00:00 AM every month.
9 | - cron: "0 0 1 * *"
10 |
11 | jobs:
12 | markdown-link-check:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - uses: actions/checkout@master
16 | - uses: gaurav-nelson/github-action-markdown-link-check@v1
17 | with:
18 | use-quiet-mode: 'yes'
19 | use-verbose-mode: 'yes'
20 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Awesome Flask [](https://github.com/sindresorhus/awesome)
2 |
3 | > A curated list of awesome things related to Flask.
4 |
5 |
6 | [Flask](https://flask.palletsprojects.com/) is a lightweight WSGI web application framework written in Python.
7 |
8 | ## Contents
9 |
10 | - [Third-Party Extensions](#third-party-extensions)
11 | - [Admin](#admin)
12 | - [APIs](#apis)
13 | - [Auth](#auth)
14 | - [Cache](#cache)
15 | - [Data Validation and Serialization](#data-validation-and-serialization)
16 | - [Databases](#databases)
17 | - [Developer Tools](#developer-tools)
18 | - [Email](#email)
19 | - [Forms](#forms)
20 | - [Full-text Search](#full-text-search)
21 | - [Security](#security)
22 | - [Task Queues](#task-queues)
23 | - [Utils](#utils)
24 | - [Resources](#resources)
25 | - [Official Resources](#official-resources)
26 | - [External Resources](#external-resources)
27 | - [Community](#community)
28 | - [Conferences](#conferences)
29 | - [Meetups](#meetups)
30 | - [Podcasts](#podcasts)
31 | - [Tutorials](#tutorials)
32 | - [Courses](#courses)
33 | - [Books](#books)
34 | - [Videos](#videos)
35 | - [Hosting](#hosting)
36 | - [PaaS](#paas)
37 | - [IaaS](#iaas)
38 | - [Serverless](#serverless)
39 | - [Projects](#projects)
40 | - [Boilerplates](#boilerplates)
41 | - [Open Source Projects](#open-source-projects)
42 |
43 | ## Third-Party Extensions
44 |
45 | ### Admin
46 |
47 | - [Flask-Admin](https://github.com/pallets-eco/flask-admin) - Functional admin panel that provides a user interface for managing data based on your models.
48 |
49 | ### APIs
50 |
51 | #### RESTful API Support
52 |
53 | - [Eve](https://docs.python-eve.org) - RESTful API framework designed for human beings.
54 | - [Flask-Classful](https://flask-classful.readthedocs.io/) - Adds support for class-based views for setting up RESTful API route endpoints.
55 | - [Flask-MongoRest](https://github.com/closeio/flask-mongorest) - RESTful API framework wrapped around [MongoEngine](http://mongoengine.org/).
56 | - [Flask-RESTful](https://flask-restful.readthedocs.io) - Quickly build RESTful APIs.
57 |
58 | #### RESTful API + Swagger/OpenAPI Documentation Support
59 |
60 | - [APIFlask](https://github.com/apiflask/apiflask) - Integrates marshmallow for validation and serialization, and for OpenAPI generation with Swagger UI.
61 | - [Connexion](https://connexion.readthedocs.io) - Open source, OpenAPI-based, REST framework built on top of Flask.
62 | - [Flasgger](https://github.com/flasgger/flasgger) - OpenAPI and Swagger UI. Builds the API from Flasgger models, marshmallow models, dicts, or YAML files.
63 | - [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.
64 | - [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.
65 | - [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.
66 |
67 |
68 | #### Swagger/OpenAPI Documentation Support
69 |
70 | - [SAFRS: Python OpenAPI & JSON:API Framework](https://github.com/thomaxxl/safrs) - SAFRS, which is an acronym for *S*ql*A*lchemy *F*lask-*R*estful *S*wagger, is meant to help developers create self-documenting JSON APIs for SQLAlchemy database objects and relationships.
71 |
72 | ### Auth
73 |
74 | #### Basic Auth and Session-based (for HTML Endpoints)
75 |
76 | - [Flask-HTTPAuth](https://flask-httpauth.readthedocs.io) - Authentication.
77 | - [Flask-Login](https://flask-login.readthedocs.io/) - Account management and authentication.
78 | - [Flask Principal](https://pythonhosted.org/Flask-Principal/) - Authorization.
79 | - [Flask-Security-Too](https://flask-security-too.readthedocs.io/en/stable/) - Account management, authentication, authorization.
80 | - [Flask-Session](https://flasksession.readthedocs.io/en/latest/) - Session managment.
81 | - [Flask-SimpleLogin](https://github.com/flask-extensions/Flask-SimpleLogin) - Authentication.
82 | - [Flask-User](https://flask-user.readthedocs.io) - Account management, authentication, authorization.
83 |
84 | > 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).
85 |
86 | #### JWT-based (for JSON Endpoints)
87 |
88 | - [Flask-JWT](https://pythonhosted.org/Flask-JWT/) - Basic support for working with JWTs.
89 | - [Flask-JWT-Extended](https://flask-jwt-extended.readthedocs.io) - Advanced support for working with JWTs.
90 | - [Flask-JWT-Router](https://github.com/joegasewicz/flask-jwt-router) - Adds authorized routes to a Flask app.
91 | - [Flask-Praetorian](https://flask-praetorian.readthedocs.io) - Authentication and authorization for Flask APIs.
92 |
93 | #### OAuth
94 |
95 | - [Authlib](https://authlib.org/) - Library for building OAuth and OpenID clients and servers.
96 | - [Authomatic](https://github.com/authomatic/authomatic) - Framework agnostic library for Python web applications that simplifies authentication and authorization of users via OAuth and OpenID.
97 | - [Flask-Dance](https://github.com/singingwolfboy/flask-dance) - OAuth support via [OAuthLib](https://oauthlib.readthedocs.io/).
98 |
99 | ### Cache
100 |
101 | - [Flask-Caching](https://flask-caching.readthedocs.io/) - Caching support.
102 |
103 | ### Data Validation and Serialization
104 |
105 | - [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.
106 | - [Flask-Pydantic](https://github.com/bauerji/flask-pydantic) - [Pydantic](https://github.com/pydantic/pydantic) support.
107 |
108 | ### Databases
109 |
110 | #### ORMs
111 |
112 | - [Flask-Peewee](https://flask-peewee.readthedocs.io) - Support for Peewee, an ORM and database migration tool.
113 | - [Flask-Pony](https://pypi.org/project/Flask-Pony/) - Support for Pony ORM.
114 | - [Flask-SQLAlchemy](https://flask-sqlalchemy.palletsprojects.com) - Support for SQLAlchemy, a SQL toolkit and ORM.
115 |
116 | #### ODMs
117 |
118 | - [Flask-MongoEngine](https://flask-mongoengine-3.readthedocs.io) - Bridges Flask and MongoEngine for working with MongoDB.
119 | - [Flask-PyMongo](https://flask-pymongo.readthedocs.io) - Bridges Flask and PyMongo for working with MongoDB.
120 |
121 | #### Migrations
122 |
123 | - [Flask-Alembic](https://flask-alembic.readthedocs.io) - Configurable [Alembic](https://alembic.sqlalchemy.org/) migration environment around a Flask-SQLAlchemy database for handling database migrations.
124 |
125 | - [Flask-DB](https://github.com/nickjj/flask-db) - Flask CLI extension that helps you migrate, drop, create and seed your SQL database.
126 | - [Flask-Migrate](https://flask-migrate.readthedocs.io) - Handles SQLAlchemy database migrations via Alembic.
127 |
128 |
129 | > 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.
130 |
131 | #### Other Tools
132 |
133 | - [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.
134 |
135 | ### Developer Tools
136 |
137 | #### Debugging
138 |
139 | - [Flask-DebugToolbar](https://flask-debugtoolbar.readthedocs.io) - Port of Django's debug toolbar for Flask.
140 | - [Flask-Profiler](https://github.com/muatik/flask-profiler) - Endpoint analyzer/profiler.
141 |
142 | #### Fixtures
143 |
144 | - [Flask-Fixtures](https://github.com/croach/Flask-Fixtures) - Create database fixtures from JSON or YAML.
145 | - [Mixer](https://mixer.readthedocs.io) - Object generation tool.
146 |
147 | #### Logging
148 |
149 | - [Rollbar](https://rollbar.com/platforms/flask-error-tracking/) - Flask error logging with Rollbar.
150 |
151 | #### Monitoring
152 |
153 | - [Airbrake](https://docs.airbrake.io/docs/platforms/framework/python/flask/) - Airbrake Flask integration.
154 | - [Elastic APM Agent](https://www.elastic.co/guide/en/apm/agent/python/current/flask-support.html) - Elastic APM Flask integration.
155 | - [Flask Monitoring Dashboard](https://flask-monitoringdashboard.readthedocs.io) - Dashboard for automatic monitoring of Flask web-services.
156 | - [Sentry Python SDK](https://sentry.io/for/flask/) - Sentry SDK Flask integration.
157 |
158 | #### Tracing
159 |
160 | - [OpenTelemetry](https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/flask/flask.html) - OpenTelemetry Flask Instrumentation.
161 |
162 | #### Testing
163 |
164 | - [Flask-Testing](https://pythonhosted.org/Flask-Testing/) - Unittest extensions.
165 | - [Pytest-Flask](https://github.com/pytest-dev/pytest-flask) - Pytest support for testing Flask applications.
166 |
167 | ### Email
168 |
169 | - [Flask-Mail](https://flask-mail.readthedocs.io/) - Provides simple email sending capabilities.
170 | - [Flask-Mailman](https://pypi.org/project/flask-mailman/) - A port of `django.mail` for Flask.
171 | - [Flask-Mail-SendGrid](https://github.com/hamano/flask-mail-sendgrid) - Provides simple email base on Flask-Mail for sending email by SendGrid.
172 |
173 | ### Forms
174 |
175 | - [Flask-WTF](https://flask-wtf.readthedocs.io) - Integrates Flask with WTForms (provides CSRF protection as well).
176 |
177 | ### Full-text Search
178 |
179 |
180 | - [flask-msearch](https://github.com/honmaple/flask-msearch) - Full-text search.
181 | - [Flask-WhooshAlchemy3](https://github.com/blakev/Flask-WhooshAlchemy3) - Full-text search + Whoosh indexing capabilities for Flask-SQLAlchemy.
182 | - [SQLAlchemy-Searchable](https://sqlalchemy-searchable.readthedocs.io) - Provides full-text search capabilities for SQLAlchemy models.
183 |
184 | ### Security
185 |
186 | - [Flask-Argon2](https://github.com/red-coracle/flask-argon2) - Provides argon2 hashing utilities.
187 | - [Flask-Bcrypt](https://flask-bcrypt.readthedocs.io) - Provides bcrypt hashing utilities.
188 | - [Flask-CORS](https://flask-cors.readthedocs.io) - Cross Origin Resource Sharing (CORS) handling.
189 | - [Flask-SeaSurf](https://github.com/maxcountryman/flask-seasurf/) - Cross-site request forgery (CSRF) prevention.
190 | - [Flask-Talisman](https://github.com/wntrblm/flask-talisman) - HTTPS and security headers.
191 |
192 | ### Task Queues
193 |
194 | - [Celery](https://docs.celeryproject.org/) - The most commonly used Python library for handling asynchronous tasks and scheduling.
195 | - [Dramatiq](https://flask-dramatiq.rtfd.io/) - Fast and reliable alternative to Celery.
196 | - [Flask-RQ](https://github.com/pallets-eco/flask-rq) - [RQ](https://python-rq.org/) (Redis Queue) integration.
197 | - [Huey](https://huey.readthedocs.io) - [Redis](https://redis.io/)-based task queue that aims to provide a simple, yet flexible framework for executing tasks.
198 |
199 | ### Utils
200 |
201 | - [Flask-Babel](https://github.com/python-babel/flask-babel) - Support for internationalization (i18n) and localization (l10n).
202 | - [Flask-File-Upload](https://github.com/joegasewicz/flask-file-upload) - Easy file uploads.
203 | - [Flask-FlatPages](https://pythonhosted.org/Flask-FlatPages/) - Provides flat static pages based on text files.
204 | - [Frozen-Flask](https://github.com/Frozen-Flask/Frozen-Flask) - Freezes a Flask application into a set of static files.
205 | - [Flask-GraphQL](https://github.com/graphql-python/flask-graphql) - GraphQL support.
206 | - [Flask-Injector](https://github.com/python-injector/flask_injector) - Adds support for dependency injection.
207 | - [Flask-Limiter](https://flask-limiter.readthedocs.io) - Rate limiting features to Flask routes.
208 | - [Flask-Moment](https://github.com/miguelgrinberg/Flask-Moment) - Moment.js date and time formatting helpers for Jinja2 templates.
209 | - [Flask-Paginate](https://pythonhosted.org/Flask-paginate/) - Pagination support.
210 | - [Flask-Reactize](https://github.com/Azure-Samples/flask-reactize) - Hides the Node.js development backend for React behind a Flask application.
211 | - [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.
212 | - [Flask-Sitemap](https://flask-sitemap.readthedocs.io) - Sitemap generation.
213 | - [Flask-SocketIO](https://flask-socketio.readthedocs.io) - Socket.IO integration.
214 | - [Flask-SSE](https://flask-sse.readthedocs.io) - Streaming with flask.
215 |
216 | ## Resources
217 |
218 | ### Official Resources
219 |
220 | - [Project Website](https://palletsprojects.com/p/flask/) - Official Flask website.
221 |
222 | - [Documentation](https://flask.palletsprojects.com) - Comprehensive documentation for all Flask versions.
223 | - [Flaskr Tutorial](https://flask.palletsprojects.com/tutorial/) - Build a basic blog application called Flaskr.
224 | - [Source Code](https://github.com/pallets/flask) - Hosted on GitHub.
225 |
226 | ### External Resources
227 |
228 | - [Full Stack Python's Flask Page](https://www.fullstackpython.com/flask.html) - Explanation of Flask philosophy and links to other resources and tutorials.
229 | - [Miguel Grinberg's Blog](https://blog.miguelgrinberg.com/category/Flask) - Multiple Flask-specific tutorials.
230 |
231 | - [Nick Janetakis's Blog](https://nickjanetakis.com/blog/tag/flask-tips-tricks-and-tutorials) - Flask Tips, Tricks and Tutorials.
232 | - [Patrick Kennedy's Blog](https://www.patricksoftwareblog.com/) - Numerous tutorials on learning Python web application development with Flask.
233 | - [RealPython](https://realpython.com/tutorials/flask/) - Many high-quality tutorials on Flask.
234 | - [TestDriven.io](https://testdriven.io/blog/topics/flask/) - Up-to-date tutorials on Flask.
235 |
236 | ### Community
237 |
238 | - [Discord](https://discord.com/invite/t6rrQZH) - Pallets Projects community on Discord (use the `#get-help` channel for Flask support).
239 | - IRC Channel - Chat with other Flask users on IRC channel `#pocoo` on FreeNode.
240 | - [Mailing List](https://mail.python.org/mailman/listinfo/flask) - General discussion of Flask and the Pallets projects (`flask@python.org`).
241 | - [Reddit](https://www.reddit.com/r/flask/) - Flask subreddit.
242 | - [Stack Overflow](https://stackoverflow.com/questions/tagged/flask) - Questions tagged `flask`.
243 | - [Twitter](https://twitter.com/PalletsTeam) - For official announcements on updates, security fixes, etc.
244 |
245 | ### Conferences
246 |
247 | - [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.
248 | - [PyConWeb](https://twitter.com/pyconweb) - Covers Django, Tornado, Flask, API frameworks. AsyncIO, networking, Frontend, JavaScript, and web security.
249 | - [Flask Conf Brazil](https://2019.flask.python.org.br/) - Conference for the developers and users of Flask.
250 | - [PyCon US](https://us.pycon.org/) - The largest annual gathering for the community using and developing the open-source Python programming language.
251 | - [PyCon Australia](https://pycon-au.org/) - National conference organized for the Python Programming Community.
252 | - [Euro Python](https://europython.eu/) - The largest Python conference in Europe.
253 | - [PyCon](https://pycon.org/) - Complete listing of all PyCons globally.
254 |
255 | ### Meetups
256 |
257 | - [Flask](https://www.meetup.com/topics/flask/all/) - 40+ groups in 20 countries.
258 | - [Python Web Development](https://www.meetup.com/topics/python-web-development/all/) - 600+ groups in 81 countries.
259 | - [Python](https://www.meetup.com/topics/python/all/) - 2,400+ groups in 100 countries.
260 |
261 | ### Podcasts
262 |
263 | - [TalkPython](https://talkpython.fm/) - The leading Python podcast with several episodes on Flask.
264 | - [Podcast Init](https://www.pythonpodcast.com/) - A popular Python podcast that features Flask guests on occasion.
265 | - [Python Bytes](https://pythonbytes.fm/) - Another Python podcast that discusses Flask from time to time.
266 | - [Full Stack Python's Best Python Podcasts Page](https://www.fullstackpython.com/best-python-podcasts.html) - A list of active Python-specific podcasts.
267 |
268 | ### Tutorials
269 |
270 | - [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.
271 | - [Flaskr TDD](https://github.com/mjhea0/flaskr-tdd) - Intro to Flask, Test-Driven Development (TDD), and JavaScript.
272 | - [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.
273 |
274 | ### Courses
275 |
276 | - [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).
277 | - [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.
278 | - [Authentication with Flask, React, and Docker](https://testdriven.io/courses/auth-flask-react/) - Learn how to add authentication to a Flask and React microservice!.
279 | - [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.
280 | - [Build a SAAS App with Flask](https://buildasaasappwithflask.com) - Learn to build web applications with Flask and Docker.
281 | - [Full Stack Foundations](https://www.udacity.com/course/full-stack-foundations--ud088) - Build a data-driven web app with Python.
282 | - [Designing RESTful APIs](https://www.udacity.com/course/designing-restful-apis--ud388) - Build and Secure a backend API server.
283 |
284 | ### Books
285 |
286 | - [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.
287 | - [Real Python](https://realpython.com) - Learn Python programming, by example.
288 | - [Explore Flask](https://explore-flask.readthedocs.io/) - Best practices and patterns for developing web applications with Flask.
289 |
290 | ### Videos
291 |
292 | - [PyVideo](https://pyvideo.org/search.html?q=flask)
293 | - [Practical Flask Web Development Tutorials](https://www.youtube.com/playlist?list=PLQVvvaa0QuDc_owjTbIY4rbgXOFkUYOUB)
294 | - [Python Flask Tutorial: Full-Featured Web App](https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH)
295 | - [Discover Flask - Full Stack Web Development with Flask](https://github.com/realpython/discover-flask)
296 |
297 | ## Hosting
298 |
299 | ### PaaS
300 |
301 | (Platforms-as-a-Service)
302 |
303 | - [Heroku](https://www.heroku.com/)
304 | - [PythonAnywhere](https://www.pythonanywhere.com/details/flask_hosting)
305 | - [AWS Elastic Beanstalk](https://aws.amazon.com/elasticbeanstalk/)
306 | - [Google App Engine](https://cloud.google.com/appengine/)
307 | - [Microsoft Azure App Service](https://azure.microsoft.com/en-us/products/app-service/)
308 | - [Divio](https://www.divio.com)
309 | - [Render](https://render.com/)
310 |
311 | ### IaaS
312 |
313 | (Infrastructure-as-a-Service)
314 |
315 | - [AWS EC2](https://aws.amazon.com/ec2/)
316 | - [Google Compute Engine](https://cloud.google.com/compute/)
317 | - [Digital Ocean](https://www.digitalocean.com/)
318 |
319 | - [Linode](https://www.linode.com/)
320 |
321 | ### Serverless
322 |
323 | Frameworks:
324 |
325 | - [Zappa](https://github.com/Miserlou/Zappa)
326 | - [Chalice](https://github.com/aws/chalice)
327 |
328 | Compute:
329 |
330 | - [AWS Lambda](https://aws.amazon.com/lambda/)
331 | - [Google Cloud Functions](https://cloud.google.com/functions/)
332 | - [Azure Functions](https://azure.microsoft.com/en-us/products/functions/)
333 |
334 | ## Projects
335 |
336 | ### Boilerplates
337 |
338 | - [cookiecutter-flask](https://github.com/cookiecutter-flask/cookiecutter-flask) - With Bootstrap 4, asset bundling annd minification with webpack, starter templates, and registration/authentication.
339 | - [Cookiecutter Flask Skeleton](https://github.com/testdrivenio/cookiecutter-flask-skeleton) - Flask starter project for [Cookiecutter](https://github.com/cookiecutter/cookiecutter).
340 | - [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.
341 | - [flask-base](http://hack4impact.github.io/flask-base/) - Includes SQLAlchemy, Redis, User Authentication, and more.
342 | - [Flask-Bootstrap](https://github.com/esbullington/flask-bootstrap) - Integrated SQLAlchemy, authentication, and Bootstrap frontend.
343 | - [flask-htmx-boilerplate](https://github.com/marcusschiesser/flask-htmx-boilerplate) - Boilerplate template for a Python Flask application with HTMX and Tailwind CSS.
344 | - [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.
345 | - [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.
346 | - [MVC Flask](https://github.com/marcuxyz/mvc-flask) - You can use the mvc pattern in your flask application using this extension.
347 |
348 | ### Open Source Projects
349 |
350 | - [ActorCloud](https://github.com/actorcloud/ActorCloud) - Open-source IoT Platform.
351 | - [Airflow](https://github.com/apache/airflow/tree/master/airflow/www)
352 | - [Busy Beaver](https://github.com/busy-beaver-dev/busy-beaver) - Chicago Python's Community Engagement Slack bot.
353 | - [FlaskBB](https://github.com/flaskbb/flaskbb) - Classic forum software.
354 | - [Indico](https://github.com/indico/indico) - Feature-rich event management system, made at [CERN](https://home.cern/).
355 | - [Quokka CMS](https://github.com/quokkaproject) - The happiest CMS in the world.
356 | - [PythonBuddy](https://github.com/ethanchewy/PythonBuddy) - Online Python Editor with live syntax checking and execution.
357 | - [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.
358 | - [SkyLines](https://github.com/skylines-project/skylines) - Live tracking, flight database, and competition framework.
359 | - [Security Monkey](https://github.com/Netflix/security_monkey) - Monitors AWS, GCP, OpenStack, and GitHub orgs for assets and their changes over time.
360 | - [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.
361 | - [SimpleLogin](https://github.com/simple-login/app) - Protect your online identity with email alias.
362 | - [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).
363 | - [Timesketch](https://github.com/google/timesketch) - Collaborative forensic timeline analysis.
364 |
365 | ---
366 |
367 |
368 |
369 | > **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!
370 |
--------------------------------------------------------------------------------
/contributing.md:
--------------------------------------------------------------------------------
1 | # Contribution Guidelines
2 |
3 | It's almost inevitable that any `awesome` repo will bloat over time and become less and less curated. To guard against that and to protect my own time, please be aware that while contributions are encouraged at the end of the day this repo is largely my own personal, biased thoughts.
4 |
5 | You are more than welcome to fork this and create/maintain your own list of awesome Flask resources if you disagree with choices I've made.
6 |
7 | That said, I'm eager to and will review any and all contributions. Here's the process:
8 |
9 | 1. Make an individual pull request for each suggestion and include a *reason* why it is awesome.
10 | 1. To be fair, the order is first-come-first-serve so unless a section is alphabetical, add the item at the end.
11 | 1. If you think something belongs in a different category or think there needs to be a new category, feel free to suggest edits as well.
12 |
--------------------------------------------------------------------------------
/flask-logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------