Перейти к содержанию

Подключение WSGI — Flask, Django и другие

Вы можете монтировать WSGI‑приложения, как вы видели в Подприложения — Mounts, За прокси‑сервером.

Для этого вы можете использовать WSGIMiddleware и обернуть им ваше WSGI‑приложение, например Flask, Django и т.д.

Использование WSGIMiddleware

Нужно импортировать WSGIMiddleware.

Затем оберните WSGI‑приложение (например, Flask) в middleware (Промежуточный слой).

После этого смонтируйте его на путь.

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))

Проверьте

Теперь каждый HTTP‑запрос по пути /v1/ будет обрабатываться приложением Flask.

А всё остальное будет обрабатываться FastAPI.

Если вы запустите это и перейдёте по http://localhost:8000/v1/, вы увидите HTTP‑ответ от Flask:

Hello, World from Flask!

А если вы перейдёте по http://localhost:8000/v2, вы увидите HTTP‑ответ от FastAPI:

{
    "message": "Hello World"
}