În SQLAlchemy 2.0, vechiul stil bazat pe session.query(Model) a fost complet eliminat în favoarea noii sintaxe standardizate select(Model).
În rutele asincrone FastAPI, interogarea este transmisă către baza de date prin await session.execute(stmt). Pentru a extrage obiectele instanțiate direct (fără tuple), se folosește metoda result.scalars().all() sau result.scalar_one_or_none().
Exemplu: Preluare utilizatori din PostgreSQL asincron în FastAPI
from fastapi import FastAPI, Depends, HTTPException
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from typing import Annotated
app = FastAPI()
@app.get("/users")
async def list_users(session: Annotated[AsyncSession, Depends(get_async_db)]):
# Interogare asincronă cu filtrare:
stmt = select(User).where(User.is_active == True).order_by(User.id.desc()).limit(50)
result = await session.execute(stmt)
users = result.scalars().all()
return users
Întrebări & Exemple de Cod:
Interogări Asincrone cu select() și scalars()Ai o nelămurire despre utilizarea comenzii
Interogări Asincrone cu select() și scalars()sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.