📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials FastAPI FastAPI Async Database

FastAPI Async Database

6 min read
Use SQLAlchemy 2.0 async engine and asyncpg for non-blocking database queries in FastAPI.

Async SQLAlchemy 2.0

from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker

DATABASE_URL    = "postgresql+asyncpg://user:pass@localhost/mydb"
async_engine    = create_async_engine(DATABASE_URL)
AsyncSessionLocal = async_sessionmaker(async_engine)

async def get_async_db():
    async with AsyncSessionLocal() as session:
        yield session

@app.get("/users")
async def get_users(db: AsyncSession = Depends(get_async_db)):
    result = await db.execute(select(User).order_by(User.created_at.desc()))
    return result.scalars().all()