Flask is a Python microframework. It uses Jinja2 for templating and the Werkzeug toolkit. It was first released in April 2010, and the last stable release is from December 2016.
Unlike a full-fledged framework like e.g. Django, being a microframework, Flask does not require any particular tools or libraries. It does not include any components in its core, where the functionalities can be provided or derived from third-party libraries. It is therefore suitable for development projects that are planned to be highly customized, as the developers have more freedom than with more opinionated frameworks.
The list of web sites that use Flask includes even big names like Pinterest and LinkedIn.
Instead of relying on a preselected set of tools, Flask relies on extensions, which cover just about all of the spectrum that separates Flask from full-featured frameworks, like ORM, form validation, upload handling, authentication etc. While the Flask core is regularly updated, the extensions are updated far more often.
Some of Flask's most notable features are:
- Included development server and debugger
- Integrated support for unit testing
- RESTful request dispatching
- Support for secure cookies (client side sessions)
- 100% WSGI 1.0 compliant
- Google App Engine compatibility
- Extensions available to enhance features desired
There is not much to say about Flask itself, as it is, by design, created to be as minimalistic as possible, so as to leave as much freedom for customization as possible to developers using it. It is a tried and tested microframework, though, with a helpful community, and it is well-suited for projects that require high levels of bespoke functionalities. If you are unsure whether or not it is the right thing for you, contact our Flask experts, and they will be happy to help you determine, if Flask is what you need, and then help you build the project of your dreams.