Flask

Flask

Open Source

The Python micro framework for building web applications.

Backend Frameworks
Python Backend Frameworks

Scores

Popularity
3/5
Learning Curve
2/5
Flexibility
4/5
Performance
4/5
Portability
4/5

About

Flask is a lightweight WSGI web framework for Python, first released in 2010. It is deliberately a "micro-framework" — the core provides routing, a development server, request/response handling, Jinja2 templating, and secure signed cookies, but adds nothing else by default. You choose the database, ORM, authentication library, and form validation tool from Flask's large ecosystem of extensions.

Routing uses Python decorators to map URL patterns to view functions. Blueprints organise a larger application into modular components that can be registered independently, enabling clean separation of concerns. The built-in Jinja2 templating engine supports template inheritance, macros, and filters.

Popular extensions include Flask-SQLAlchemy (ORM), Flask-Migrate (Alembic migrations), Flask-Login (session management), and Flask-CORS. Flask apps are deployed via WSGI servers (Gunicorn, uWSGI) behind Nginx or as Docker containers on any cloud platform.

Key Features

  • Lightweight and minimal core—only what you need
  • Flexible architecture—you choose your own tools and libraries
  • Built-in development server and interactive debugger
  • Jinja2 templating for server-side rendering
  • RESTful request routing with decorator syntax
  • Blueprints for organizing larger applications into modules
  • Extensive ecosystem of community extensions
  • Easy to learn and get started

Pros

  • Simplicity—can build a working app in minutes
  • Maximum flexibility—choose any database, ORM, or authentication method
  • Small learning curve—great for beginners and small projects
  • Extensible ecosystem with hundreds of extensions
  • Works well for both simple APIs and complex applications
  • Mature and stable with large community
  • Excellent documentation and examples
  • Minimal boilerplate code

Cons

  • Less opinionated—requires more architectural decisions from developers
  • No built-in components need to be assembled manually (database, auth, etc.)
  • Can become messy without proper project structure discipline
  • Synchronous by default—no native async support (requires ASGI variant)
  • Less built-in security features compared to Django
  • Project structure decisions left to developers can lead to inconsistency
  • Scaling to large applications requires careful architecture planning

Pricing

Open Source

Possible Stacks

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.

Backend

Programming

Databases

Hosting

Sandbox

Flask + HTML Templates

Project

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

Backend

Programming

Databases

Hosting

Sandbox

Flask + Supabase

Project

A beginner-friendly Python stack for side projects and small apps. Flask handles routing and server logic; Supabase provides managed PostgreSQL, file storage, and a built-in database UI — without the overhead of self-managing a Postgres server. And no seperate frontend is needed - Flask handles it through HTML Jinja2 templates.

Backend

Programming

Databases

Authentication

Sandbox

Related Tools

Tags

PythonOpen SourceSelf-hostableWeb DevelopmentAPI Development

Details

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