Vue d'ensemble

Flask 2.0, publié le 12 mai 2021, est une version majeure qui introduit le support des vues asynchrones et les blueprints imbriqués.

Fonctionnalités principales

Vues asynchrones

Flask 2.0 supporte nativement les fonctions de vue async. Les handlers peuvent utiliser await pour les opérations d'entrée/sortie non bloquantes sans quitter l'écosystème Flask.

python
from flask import Flask
import httpx

app = Flask(__name__)

@app.get('/meteo/<ville>')
async def meteo(ville):
    async with httpx.AsyncClient() as client:
        resp = await client.get(
            f'https://api.meteo.example/{ville}'
        )
        return resp.json()

@app.get('/sante')
async def sante():
    return {'statut': 'ok'}

Blueprints imbriqués

Les blueprints peuvent désormais être imbriqués, permettant de structurer une application en modules hiérarchiques avec des préfixes d'URL composés.

python
from flask import Flask, Blueprint

# Blueprint parent
api = Blueprint('api', __name__, url_prefix='/api')

# Blueprint enfant
utilisateurs = Blueprint('utilisateurs', __name__, url_prefix='/utilisateurs')

@utilisateurs.get('/')
def liste():
    return {'utilisateurs': []}

# Imbrication
api.register_blueprint(utilisateurs)

app = Flask(__name__)
app.register_blueprint(api)
# Route finale : /api/utilisateurs/

Sources