Google Colab में FastAPI / Uvicorn कैसे चलाएं?
Sep 10 2020
मैं Google Colab पर FastAPI / Uvicorn का उपयोग करके एक "लोकल" वेब ऐप चलाने की कोशिश कर रहा हूं, जैसे कि कुछ फ्लास्क ऐप का नमूना कोड मैंने देखा है, लेकिन इसे काम करने के लिए नहीं मिल सकता है। क्या कोई ऐसा कर पाया है? इसकी प्रशंसा करना।
स्थापित FastAPI और Uvicorn सफलतापूर्वक
!pip install FastAPI -q
!pip install uvicorn -q
नमूना एप्लिकेशन
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
प्रयास चलाएं
#attempt 1
if __name__ == "__main__":
uvicorn.run("/content/fastapi_002:app", host="127.0.0.1", port=5000, log_level="info")
#attempt 2
#uvicorn main:app --reload
!uvicorn "/content/fastapi_001.ipynb:app" --reload
जवाब
5 YagizDegirmenci Sep 10 2020 at 16:18
आप बाहरी url के रूप में पोर्ट निर्यात करने के लिए ngrok का उपयोग कर सकते हैं । मूल रूप से, ngrok आपके स्थानीय होस्ट पर कुछ उपलब्ध / होस्ट करता है और इसे अस्थायी सार्वजनिक URL के साथ इंटरनेट पर उजागर करता है।
पहले निर्भरता स्थापित करें
!pip install fastapi nest-asyncio pyngrok uvicorn
अपना ऐप बनाएं
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=['*'],
allow_credentials=True,
allow_methods=['*'],
allow_headers=['*'],
)
@app.get('/')
async def root():
return {'hello': 'world'}
फिर इसे नीचे चलाएं।
import nest_asyncio
from pyngrok import ngrok
import uvicorn
ngrok_tunnel = ngrok.connect(8000)
print('Public URL:', ngrok_tunnel.public_url)
nest_asyncio.apply()
uvicorn.run(app, port=8000)