1.9 KiB
WSGI inkludieren – Flask, Django und andere
Sie können WSGI-Anwendungen mounten, wie Sie es in Unteranwendungen – Mounts{.internal-link target=_blank}, Hinter einem Proxy{.internal-link target=_blank} gesehen haben.
Dazu können Sie die WSGIMiddleware verwenden und damit Ihre WSGI-Anwendung wrappen, zum Beispiel Flask, Django usw.
WSGIMiddleware verwenden
/// info | 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.
{* ../../docs_src/wsgi/tutorial001_py39.py hl[1,3,23] *}
/// note | 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"
}