Interogări Asincrone cu select() și scalars() în FastAPI

database SQLAlchemy 2.0+ / FastAPI Q&A / Distribuie cod

Execuția interogărilor asincrone în stilul SQLAlchemy 2.0: utilizarea funcției select(), a metodelor scalars() și all() în rute FastAPI.

Sintaxă
result = await session.execute(select(User).where(...)) / users = result.scalars().all()

Î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

Comunitate & Schimb de cunoștințe

Î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.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.