Inclure WSGI - Flask, Django, autres¶
🌐 Traduction par IA et humains
Cette traduction a été réalisée par une IA guidée par des humains. 🤝
Elle peut contenir des erreurs d'interprétation du sens original, ou paraître peu naturelle, etc. 🤖
Vous pouvez améliorer cette traduction en nous aidant à mieux guider le LLM d'IA.
Vous pouvez monter des applications WSGI comme vous l'avez vu avec Sous-applications - Montages, Derrière un proxy.
Pour cela, vous pouvez utiliser WSGIMiddleware et l'utiliser pour envelopper votre application WSGI, par exemple Flask, Django, etc.
Utiliser WSGIMiddleware¶
Info
Cela nécessite l'installation de a2wsgi, par exemple avec pip install a2wsgi.
Vous devez importer WSGIMiddleware depuis a2wsgi.
Ensuite, enveloppez l'application WSGI (par ex. Flask) avec le middleware.
Puis, montez-la sous un chemin.
from a2wsgi import WSGIMiddleware
from fastapi import FastAPI
from flask import Flask, request
from markupsafe import escape
flask_app = Flask(__name__)
@flask_app.route("/")
def flask_main():
name = request.args.get("name", "World")
return f"Hello, {escape(name)} from Flask!"
app = FastAPI()
@app.get("/v2")
def read_main():
return {"message": "Hello World"}
app.mount("/v1", WSGIMiddleware(flask_app))
Remarque
Auparavant, il était recommandé d'utiliser WSGIMiddleware depuis fastapi.middleware.wsgi, mais il est désormais déprécié.
Il est conseillé d'utiliser le package a2wsgi à la place. L'utilisation reste la même.
Assurez-vous simplement que le package a2wsgi est installé et importez WSGIMiddleware correctement depuis a2wsgi.
Vérifiez¶
Désormais, chaque requête sous le chemin /v1/ sera gérée par l'application Flask.
Et le reste sera géré par FastAPI.
Si vous l'exécutez et allez à http://localhost:8000/v1/, vous verrez la réponse de Flask :
Hello, World from Flask!
Et si vous allez à http://localhost:8000/v2, vous verrez la réponse de FastAPI :
{
"message": "Hello World"
}