Italiano
Apri in Telegram

MessaggioПодскажите пожалуйста, как подружить fastapi и sqlalchemy?

31 agosto 2024
М
Подскажите пожалуйста, как подружить fastapi и sqlalchemy? Пытаюсь получить данные из postgres с помощью сырого запроса через sqlalchemy core, но когда await'чу данные, то мне ничего не приходит. Проверял функцию отдельно, запуская через asyncio.run() - отрабатывает корректно, а вот когда пытаюсь в @app.get получить - хрен. Подскажите, как-таки получить данные из БД при запросе эндпоинта? Как инициализирую fastapi: app = FastAPI() origins = [ "http://localhost:3000", "localhost:3000" ] app.add_middleware( CORSMiddleware, allow_origins=origins, allow_credentials=True, allow_methods=["*"], allow_headers=["*"] ) uvicorn.run("app.api:app", host="0.0.0.0", port=8000, reload=True) Как инициализирую async engine: async_engine = create_async_engine( url=f"postgresql+asyncpg://{os.getenv('DB_USER')}:" + f"{os.getenv("DB_PASSWORD")}@" + f"{os.getenv("DB_HOST")}:" + f"{os.getenv("DB_PORT")}/" + f"{os.getenv("DB_NAME")}", echo=True, pool_size=200, ) Функция, вызываемая для запроса к БД в эндпоинте: async def select_data(): async with async_engine.connect() as connect: res = await connect.execute(text("SELECT * FROM students") return str(res.all()) Сам эндпоинт: @app.get("/students", tags=["students"]) async def get_students() -> dict: students = await select_data() # students = await asyncio.run(select_data()) print("DATA: ", students) return { "data": students }

Vicino nel feed

ППавλопредмет на завтраЕЕлисей РуссуРебят, всем привет, подскажите пожалуйста, по какому принципу метод Path.resolve() в ООП python создает абсолютный путь ? Как это работает
questo messaggio
ББензофурран Нейроциклhttps://docs.python.org/3/library/pathlib.html#pathlib.Path.resolveББензофурран НейроциклЧто-то в документации не понятно?
ССообщество Python ПрограммистовСообщество Python Программистов@python_scripts · gruppo · Tecnologia
4 169membri43scrivono in 30 giorni
Feed della community Apri in Telegram

Un feed pubblico aperto dall'indice di ricerca ChatCrawler — «Google per il Telegram pubblico»; si aggiorna man mano che la community viene scansionata. Orari in UTC.

Solo contenuti pubblici, API ufficiale di Telegram. Informazioni · FAQ · Limiti dell'indice · Rimuovi una pagina · Catalogo · Ricerca · Come calcoliamo