跳至內容

包含 WSGI - Flask、Django 等

您可以掛載 WSGI 應用程式,如同您在子應用程式 - 掛載代理伺服器後方看到的。

為此,您可以使用 WSGIMiddleware 並用它來包裝您的 WSGI 應用程式,例如 Flask、Django 等。

使用 WSGIMiddleware

您需要匯入 WSGIMiddleware

然後用中間件包裝 WSGI(例如 Flask)應用程式。

然後將其掛載到路徑下。

from fastapi import FastAPI
from fastapi.middleware.wsgi import WSGIMiddleware
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))

檢查

現在,/v1/ 路徑下的每個請求都將由 Flask 應用程式處理。

其餘的將由 FastAPI 處理。

如果您運行它並前往 http://localhost:8000/v1/,您將看到來自 Flask 的回應

Hello, World from Flask!

如果您前往 http://localhost:8000/v2,您將看到來自 FastAPI 的回應

{
    "message": "Hello World"
}