WSGI inkludieren – Flask, Django und andere¶
🌐 Translation by AI and humans
This translation was made by AI guided by humans. 🤝
It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖
You can improve this translation by helping us guide the AI LLM better.
Sie können WSGI-Anwendungen mounten, wie Sie es in Unteranwendungen – Mounts, Hinter einem Proxy gesehen haben.
Dazu können Sie die WSGIMiddleware verwenden und damit Ihre WSGI-Anwendung wrappen, zum Beispiel Flask, Django usw.
WSGIMiddleware verwenden¶
Info
Dafür muss a2wsgi installiert sein, z. B. mit pip install a2wsgi.
Sie müssen WSGIMiddleware aus a2wsgi importieren.
Wrappen Sie dann die WSGI-Anwendung (z. B. Flask) mit der Middleware.
Und dann mounten Sie das auf einem Pfad.
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))
Hinweis
Früher wurde empfohlen, WSGIMiddleware aus fastapi.middleware.wsgi zu verwenden, dies ist jetzt deprecatet.
Stattdessen wird empfohlen, das Paket a2wsgi zu verwenden. Die Nutzung bleibt gleich.
Stellen Sie lediglich sicher, dass das Paket a2wsgi installiert ist und importieren Sie WSGIMiddleware korrekt aus a2wsgi.
Es testen¶
Jetzt wird jeder Request unter dem Pfad /v1/ von der Flask-Anwendung verarbeitet.
Und der Rest wird von FastAPI gehandhabt.
Wenn Sie das ausführen und auf http://localhost:8000/v1/ gehen, sehen Sie die Response von Flask:
Hello, World from Flask!
Und wenn Sie auf http://localhost:8000/v2 gehen, sehen Sie die Response von FastAPI:
{
"message": "Hello World"
}