Français
Ouvrir dans Telegram

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

31 août 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 }

À proximité dans le fil

ППавλопредмет на завтраЕЕлисей РуссуРебят, всем привет, подскажите пожалуйста, по какому принципу метод Path.resolve() в ООП python создает абсолютный путь ? Как это работает
ce message
ББензофурран Нейроциклhttps://docs.python.org/3/library/pathlib.html#pathlib.Path.resolveББензофурран НейроциклЧто-то в документации не понятно?
ССообщество Python ПрограммистовСообщество Python Программистов@python_scripts · groupe · Technologie
4 169membres43écrivent en 30 jours
Fil de la communauté Ouvrir dans Telegram

Un fil public ouvert issu de l'index de recherche ChatCrawler — « le Google du Telegram public » ; actualisé à mesure que la communauté est explorée. Les heures sont en UTC.

Contenu public uniquement, API officielle de Telegram. À propos · FAQ · Limites de l'index · Retirer une page · Catalogue · Recherche · Comment nous comptons