包含 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 处理。
如果您运行它并访问 https://:8000/v1/,您将看到 Flask 的响应
Hello, World from Flask!
如果您访问 https://:8000/v2,您将看到 FastAPI 的响应
{
"message": "Hello World"
}