WSGI'yi Dahil Etme - Flask, Django ve Diğerleri¶
🌐 Yapay Zekâ ve İnsanlar Tarafından Çeviri
Bu çeviri, insanlar tarafından yönlendirilen bir yapay zekâ ile oluşturuldu. 🤝
Orijinal anlamın yanlış anlaşılması ya da kulağa doğal gelmeme gibi hatalar içerebilir. 🤖
Yapay zekâyı daha iyi yönlendirmemize yardımcı olarak bu çeviriyi iyileştirebilirsiniz.
WSGI uygulamalarını Alt Uygulamalar - Mount Etme, Bir Proxy Arkasında bölümlerinde gördüğünüz gibi mount edebilirsiniz.
Bunun için WSGIMiddleware'ı kullanabilir ve bunu WSGI uygulamanızı (örneğin Flask, Django vb.) sarmalamak için kullanabilirsiniz.
WSGIMiddleware Kullanımı¶
Bilgi
Bunun için a2wsgi kurulmalıdır; örneğin pip install a2wsgi ile.
WSGIMiddleware'ı a2wsgi paketinden import etmeniz gerekir.
Ardından WSGI (örn. Flask) uygulamasını middleware ile sarmalayın.
Ve sonra bunu bir path'in altına mount edin.
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))
Not
Önceden, fastapi.middleware.wsgi içindeki WSGIMiddleware'ın kullanılması öneriliyordu, ancak artık kullanımdan kaldırıldı.
Bunun yerine a2wsgi paketini kullanmanız önerilir. Kullanım aynıdır.
Sadece a2wsgi paketinin kurulu olduğundan emin olun ve WSGIMiddleware'ı a2wsgi içinden doğru şekilde import edin.
Kontrol Edelim¶
Artık /v1/ path'i altındaki her request 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 response'u göreceksiniz:
Hello, World from Flask!
Ve eğer http://localhost:8000/v2 adresine giderseniz, FastAPI'dan gelen response'u göreceksiniz:
{
"message": "Hello World"
}