Introduction

Flask et FastAPI sont deux frameworks web populaires en Python. Ils permettent de créer rapidement des applications web et des API.

Fonctionnalité Flask FastAPI
Type Micro-framework web Framework web moderne et performant
Vitesse Plus lent (synchronisé) Plus rapide (asynchrone par défaut)
Typage Optionnel Utilisation poussée des types (Pydantic)
Documentation Manuelle ou via extensions Générée automatiquement (Swagger/OpenAPI)

Bases de Flask

Installation

pip install flask

Exemple minimal

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Bonjour Flask !"

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

Lancer l’application

python app.py

L’application tourne sur http://127.0.0.1:5000

Ajouter des paramètres

@app.route('/hello/<name>')
def hello(name):
    return f"Bonjour, {name} !"

Bases de FastAPI

Installation

pip install fastapi uvicorn

Exemple minimal

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"message": "Bonjour FastAPI !"}

Lancer l’application

uvicorn app:app --reload

L’application tourne sur http://127.0.0.1:8000

Documentation automatique

FastAPI génère automatiquement deux interfaces :


Gérer les paramètres

Paramètres d’URL et de requête (FastAPI)

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Corps de requête (FastAPI)

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    price: float

@app.post("/items/")
def create_item(item: Item):
    return {"item": item}

Quand utiliser quoi ?

  • Utilisez Flask si :
    • Vous cherchez la simplicité et un contrôle total
    • Vous êtes à l’aise avec WSGI
    • Vous développez une petite application ou un projet existant
  • Utilisez FastAPI si :
    • Vous avez besoin de performance et scalabilité
    • Vous voulez du typage fort et de la validation automatique
    • Vous créez une API moderne (ex. frontend/backend séparés)

Ressources utiles