Ana içeriğe geç

WSGI - Flask, Django ve Daha Fazlasını FastAPI ile Kullanma

WSGI uygulamalarını Sub Applications - Mounts, Behind a Proxy bölümlerinde gördüğünüz gibi bağlayabilirsiniz.

Bunun için WSGIMiddleware ile Flask, Django vb. WSGI uygulamanızı sarmalayabilir ve FastAPI'ya bağlayabilirsiniz.

WSGIMiddleware Kullanımı

WSGIMiddleware'ı projenize dahil edin.

Ardından WSGI (örneğin Flask) uygulamanızı middleware ile sarmalayın.

Son olarak da bir yol altında bağlama işlemini gerçekleştirin.

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

Kontrol Edelim

Artık /v1/ yolunun altındaki her istek Flask uygulaması tarafından işlenecektir.

Geri kalanı ise FastAPI tarafından işlenecektir.

Eğer uygulamanızı çalıştırıp http://localhost:8000/v1/ adresine giderseniz, Flask'tan gelen yanıtı göreceksiniz:

Hello, World from Flask!

Eğer http://localhost:8000/v2/ adresine giderseniz, FastAPI'dan gelen yanıtı göreceksiniz:

{
    "message": "Hello World"
}