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