You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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"
}