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