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