跳到内容

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