Код: Выделить всё
from contextlib import asynccontextmanager
from fastapi import FastAPI, Request
from motor.motor_asyncio import AsyncIOMotorClient
@asynccontextmanager
async def lifespan(app):
mongo_client = AsyncIOMotorClient("mongo://")
mongo_db = mongo_client["mydb"]
yield {"db": mongo_db}
mongo_client.close()
app = FastAPI(lifespan=lifespan)
@app.get("/")
async def root(request: Request):
return request.state.db
Что именно происходит с переменной состояния? Действительно ли он передается вместе с каждым запросом или безопасно хранить здесь клиент базы данных?
Подробнее здесь: https://stackoverflow.com/questions/792 ... in-fastapi