Pentru a menține avantajul de viteză extremă al buclei de evenimente (Event Loop) din FastAPI, apelurile către baza de date relațională nu trebuie să fie blocante. SQLAlchemy 2.0 aduce suport asincron complet prin create_async_engine și AsyncSession.
Împreună cu driverul asyncpg pentru PostgreSQL, sesiunile asincrone permit rularea a mii de interogări simultane pe un singur proces fără blocarea serverului ASGI.
Exemplu: Configurare motor asincron și dependență de sesiune
from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker, AsyncSession
from typing import AsyncGenerator
DATABASE_URL = "postgresql+asyncpg://user:pass@localhost:5432/app_db"
engine = create_async_engine(DATABASE_URL, echo=False, pool_size=20, max_overflow=10)
async_session_factory = async_sessionmaker(engine, class_=AsyncSession, expire_on_commit=False)
async def get_async_db() -> AsyncGenerator[AsyncSession, None]:
async with async_session_factory() as session:
yield session
Întrebări & Exemple de Cod:
AsyncSession și create_async_engine în SQLAlchemy 2.0Ai o nelămurire despre utilizarea comenzii
AsyncSession și create_async_engine în SQLAlchemy 2.0sau 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.