Flask

Flask

Open Source

The Python micro framework for building web applications.

Backend Frameworks
Python Backend Frameworks

Published 29 May 2026 · Last updated 27 September 2026

Scores

Popularity3/5

One of the most downloaded Python packages; widely used for simple APIs and prototyping.

Learning Curve2/5

Micro-framework that gets out of your way; a simple API is fewer than 20 lines.

Flexibility4/5

Micro-framework with no opinions; every component is replaceable.

Performance4/5

Lightweight core with low overhead; performance is bounded by Python's runtime speed.

Portability4/5

Minimal standard Python HTTP patterns; straightforward to migrate to FastAPI or Starlette.

About Flask

Flask is a lightweight WSGI web framework for Python, first released in 2010 and maintained by the Pallets project. It is deliberately a micro-framework: the core provides routing, a development server with an interactive debugger, request and response handling, Jinja2 templating, and signed session cookies, and nothing else by default. Developers choose the database, ORM, authentication library, and form validation from Flask's ecosystem of extensions.

Routing uses Python decorators to map URL patterns to view functions. Blueprints split a larger application into modular components that register independently, and the Jinja2 templating engine supports inheritance, macros, and filters. Since Flask 2.0, views can be written as async def; under WSGI each async view runs in its own event loop per request, so apps that are async throughout usually choose Quart, the ASGI re-implementation of Flask's API, or FastAPI instead.

Popular extensions include Flask-SQLAlchemy for the ORM, Flask-Migrate for Alembic migrations, Flask-Login for sessions, Flask-WTF for forms, and Flask-CORS. Flask apps run on WSGI servers such as Gunicorn or uWSGI behind Nginx, or in Docker containers on any cloud platform. The small core makes Flask a common first framework and a good fit for small APIs, prototypes, and services where the team wants to pick every component itself.

Key Features

  • Minimal core: routing, request handling, and signed sessions
  • Built-in development server and interactive debugger
  • Jinja2 templating for server-side rendering
  • Decorator-based URL routing
  • Blueprints for organising larger applications into modules
  • Async views (async def) supported since Flask 2.0
  • Large ecosystem of extensions for databases, auth, forms, and CORS

Pros

  • A working app takes a few lines of code
  • Free choice of database, ORM, and authentication method
  • Gentle learning curve, good for beginners, prototypes, and small services
  • Mature, stable, and very widely used, with extensive examples
  • Extensions cover most common needs

Cons

  • Architecture and project structure are left to the team, which can lead to inconsistency
  • Database, auth, and admin have to be assembled from extensions
  • Async views run per request under WSGI; fully async apps are better served by Quart or FastAPI
  • Fewer security features built in than Django
  • Large applications need deliberate structure to stay maintainable

Flask Pricing

Open Source

Tech Stacks with Flask

MLOps Pipeline

Project

Production-grade ML infrastructure. PyTorch for model training, Apache Airflow (or Dagster or Prefect) for orchestration, dbt for feature transformations, and Snowflake as the data warehouse, with Docker as an optional containerization addition.

Deploy on:
Orchestrator:
Data Libraries:
Model Serving (Python API):
Experiment Tracking add-on:
CI/CD add-on:
Containerization add-on:

HTMX + Flask

Project

The simplest way to add dynamic interactions to a Flask app. HTMX attributes in Jinja2 templates, server returns HTML fragments. Perfect for beginners building server-rendered web apps with Python.

Frontend

Backend

Programming

Databases

Hosting

Database:
Deploy on:
Authentication add-on:
CI/CD add-on:
Containerization add-on:
Email add-on:
Payments add-on:
Styling add-on:
Interactivity add-on:
Analytics add-on:

Flask + HTML Templates

Project

Minimal Flask app serving Jinja2 HTML templates, great for small projects and prototypes.

Database:
Deploy on:
Authentication add-on:
CI/CD add-on:
Containerization add-on:
Email add-on:
Payments add-on:
Styling add-on:
Analytics add-on:

Tools Related to Flask

Alternatives to Flask(10)

FastAPI is async-first and auto-generates OpenAPI docs via type hints; Flask is sync-first, more minimal, and requires more manual wiring.

Both Python web frameworks; Django bundles ORM, auth, and admin out of the box, Flask gives a minimal foundation with more flexibility.

Flask is a minimal Python framework; Spring Boot is a Java enterprise framework — different language ecosystems.

Axum is a lightweight Rust framework; Flask is a minimal Python framework — different language ecosystems.

Flask is a minimal Python framework; Rails is a full-stack Ruby framework — different language and philosophy.

Flask is a minimal Python framework; Laravel is a PHP MVC framework — different language ecosystems.

Tags

PythonOpen SourceSelf-hostableWeb DevelopmentAPI Development

Details

License
BSD-3-Clause
Maintained
Yes
Primary language
Python
Domain
Backend
GitHub stars
74.8k
Stars updated
2026-09-23