WSGI शामिल करना - Flask, Django, अन्य¶
🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद
यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝
इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖
आप हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके इस अनुवाद को बेहतर बना सकते हैं।
आप WSGI applications को mount कर सकते हैं, जैसा आपने Sub Applications - Mounts, Proxy के पीछे में देखा।
इसके लिए, आप WSGIMiddleware का उपयोग कर सकते हैं और इसे अपनी WSGI application को wrap करने के लिए इस्तेमाल कर सकते हैं, उदाहरण के लिए, Flask, Django, आदि।
WSGIMiddleware का उपयोग करना¶
नोट
इसके लिए a2wsgi install करना required है, उदाहरण के लिए pip install a2wsgi के साथ।
आपको a2wsgi से WSGIMiddleware import करना होगा।
फिर WSGI (जैसे Flask) app को middleware के साथ wrap करें।
और फिर उसे किसी path के अंतर्गत mount करें।
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))
नोट
पहले, fastapi.middleware.wsgi से WSGIMiddleware का उपयोग करने की सलाह दी जाती थी, लेकिन अब यह deprecated है।
इसके बजाय a2wsgi package का उपयोग करने की सलाह दी जाती है। उपयोग वही रहता है।
बस यह सुनिश्चित करें कि आपके पास a2wsgi package install है और आप a2wsgi से WSGIMiddleware को सही ढंग से import करते हैं।
इसे जाँचें¶
अब, path /v1/ के अंतर्गत हर request को Flask application द्वारा handle किया जाएगा।
और बाकी को FastAPI द्वारा handle किया जाएगा।
यदि आप इसे run करते हैं और http://localhost:8000/v1/ पर जाते हैं, तो आपको Flask से response दिखाई देगा:
Hello, World from Flask!
और यदि आप http://localhost:8000/v2 पर जाते हैं, तो आपको FastAPI से response दिखाई देगा:
{
"message": "Hello World"
}