Flask 0.1: il microframework Python per API e webapp

Flask 0.1 (aprile 2010) di Armin Ronacher: microframework Python web basato su Werkzeug e Jinja2. Routing decorator, richieste/risposte semplici, API minimale. Alternativa leggera a Django per API REST e microservizi.

Open SourceWeb FlaskPythonArmin RonacherWerkzeugOpen SourceWebMicroframework

Tra Django e niente

Nel 2010 il Python web è dominato da Django (framework “batteries-included”, ORM, admin, forms, auth), web.py, Pylons/TurboGears. Manca però un’opzione minimale, modulare e adatta a microservizi o API piccole. Armin Ronacher, autore di Werkzeug (WSGI toolkit) e Jinja2 (template engine), pubblica come scherzo il 1° aprile 2010 uno “scherzo” chiamato Flask: un microframework. Si rivela così solido da diventare serio.

Il rilascio

Flask 0.1 è rilasciato il 16 aprile 2010. Licenza BSD-3-Clause. Costruito su:

  • Werkzeug — WSGI utilities, routing
  • Jinja2 — template engine
from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    return "Hello, World!"

if __name__ == "__main__":
    app.run(debug=True)

Tre linee per un server web funzionante.

Filosofia

  • Microframework — core minimale, estendibile tramite librerie opzionali
  • Unopinionated — nessun ORM imposto, nessuna struttura di progetto obbligata
  • Decorator routing@app.route("/path") intuitivo
  • Context localsrequest, session, g accessibili globalmente ma thread-safe
  • Blueprints — organizzazione modulare in app grandi
  • Jinja2 nativo — template server-side potenti

Estensioni

L’ecosistema Flask cresce enormemente:

  • Flask-SQLAlchemy — integrazione ORM
  • Flask-Login, Flask-Security — autenticazione
  • Flask-Migrate — migrations Alembic
  • Flask-WTF — forms con CSRF
  • Flask-RESTful, Flask-RESTX — API REST
  • Flask-SocketIO — WebSocket

Adozione

Flask è stato il framework preferito per:

  • API REST piccole e medie
  • Microservizi Python
  • Prototipazione rapida
  • ML model serving prima di FastAPI
  • Applicazioni educative

Molti progetti Python famosi sono stati scritti in Flask: Pinterest (parte), LinkedIn (alcuni tool interni), Netflix (alcuni servizi), Reddit (alcune sezioni).

Flask 2.0 e successori

  • Flask 1.0 (aprile 2018) — stabilizzazione
  • Flask 2.0 (maggio 2021) — async support base, Python 3.7+
  • Flask 3.0 (settembre 2023) — Python 3.8+, rimozioni API deprecate

FastAPI (2018) eredita molte idee Flask (decorator, minimalismo) ma aggiunge async nativo, type hints, Pydantic validation, OpenAPI automatico — diventando progressivamente l’alternativa preferita per nuove API REST.

Nel contesto italiano

Flask è presente in molte aziende italiane che fanno AI/ML, data science, microservizi Python. Molte startup italiane ML-oriented (EALD, RoarBot, vari spin-off universitari) hanno usato Flask per esporre modelli. Ancora oggi un’alta percentuale di API Python in produzione in Italia gira su Flask.


Riferimenti: Flask 0.1 (16 aprile 2010). Armin Ronacher. Licenza BSD-3-Clause. Costruito su Werkzeug e Jinja2. Ecosistema Flask-SQLAlchemy, Flask-Login, Flask-RESTful. Evoluzione a Flask 2.0 (2021), 3.0 (2023).

Vuoi supporto? Sei sotto attacco? Stato dei servizi
Vuoi supporto? Sei sotto attacco? Stato dei servizi