FastAPI Database Integration

Web DevelopmentFastAPIFree Lesson

Advertisement

Introduction

Connect FastAPI to databases using SQLAlchemy and async support.

Database Setup

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

SQLALCHEMY_DATABASE_URL = "sqlite:///./app.db"
engine = create_engine(SQLALCHEMY_DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True, index=True)
    email = Column(String, unique=True, index=True)
    name = Column(String)

Dependency Injection

from typing import Generator

def get_db() -> Generator:
    db = SessionLocal()
    try:
        yield db
    finally:
        db.close()

@app.post("/users/", response_model=schemas.User)
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
    db_user = crud.get_user_by_email(db, email=user.email)
    if db_user:
        raise HTTPException(status_code=400, detail="Email exists")
    return crud.create_user(db=db, user=user)

Practice Problems

  1. Set up SQLAlchemy with FastAPI
  2. Create CRUD operations
  3. Use dependency injection
  4. Implement pagination
  5. Add async database support

Advertisement

Need Expert Python Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement