跳到内容

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