Перейти до змісту

Підключення WSGI - Flask, Django та інші

🌐 Переклад ШІ та людьми

Цей переклад виконано ШІ під керівництвом людей. 🤝

Можливі помилки через неправильне розуміння початкового змісту або неприродні формулювання тощо. 🤖

Ви можете покращити цей переклад, допомігши нам краще спрямовувати AI LLM.

Англійська версія

Ви можете монтувати застосунки WSGI, як ви бачили в Підзастосунки - монтування, За представником.

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

Використання WSGIMiddleware

Інформація

Для цього потрібно встановити a2wsgi, наприклад за допомогою pip install a2wsgi.

Потрібно імпортувати WSGIMiddleware з a2wsgi.

Потім обгорніть застосунок WSGI (напр., Flask) цим проміжним програмним забезпеченням.

І змонтуйте його під певним шляхом.

from a2wsgi import WSGIMiddleware
from fastapi import FastAPI
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))

Примітка

Раніше рекомендувалося використовувати WSGIMiddleware з fastapi.middleware.wsgi, але тепер його визнано застарілим.

Замість цього радимо використовувати пакет a2wsgi. Використання залишається таким самим.

Просто переконайтеся, що у вас встановлено пакет a2wsgi, і імпортуйте WSGIMiddleware коректно з a2wsgi.

Перевірте

Тепер кожен запит за шляхом /v1/ оброблятиметься застосунком Flask.

А решта - FastAPI.

Якщо ви запустите це й перейдете на http://localhost:8000/v1/, ви побачите відповідь від Flask:

Hello, World from Flask!

А якщо ви перейдете на http://localhost:8000/v2, ви побачите відповідь від FastAPI:

{
    "message": "Hello World"
}