Ir para o conteúdo

Adicionando WSGI - Flask, Django, entre outros

🌐 Translation by AI and humans

This translation was made by AI guided by humans. 🤝

It could have mistakes of misunderstanding the original meaning, or looking unnatural, etc. 🤖

You can improve this translation by helping us guide the AI LLM better.

English version

Como você viu em Subaplicações - Montagens e Atrás de um Proxy, você pode montar aplicações WSGI.

Para isso, você pode utilizar o WSGIMiddleware para encapsular a sua aplicação WSGI, como por exemplo Flask, Django, etc.

Usando WSGIMiddleware

Informação

Isso requer instalar a2wsgi, por exemplo com pip install a2wsgi.

Você precisa importar o WSGIMiddleware de a2wsgi.

Em seguida, encapsule a aplicação WSGI (e.g. Flask) com o middleware.

E então monte isso sob um path.

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

Nota

Anteriormente, recomendava-se usar WSGIMiddleware de fastapi.middleware.wsgi, mas agora está descontinuado.

É aconselhável usar o pacote a2wsgi em seu lugar. O uso permanece o mesmo.

Apenas certifique-se de que o pacote a2wsgi está instalado e importe WSGIMiddleware corretamente de a2wsgi.

Confira

Agora, todas as requisições sob o path /v1/ serão manipuladas pela aplicação Flask.

E o resto será manipulado pelo FastAPI.

Se você rodar a aplicação e ir até http://localhost:8000/v1/, você verá o retorno do Flask:

Hello, World from Flask!

E se você for até http://localhost:8000/v2, você verá o retorno do FastAPI:

{
    "message": "Hello World"
}