Skip to content

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