Write reusable CRUD functions (get, create, update, delete) with SQLAlchemy sessions.
Full CRUD with SQLAlchemy
def get_users(db: Session, skip: int = 0, limit: int = 100):
return db.query(User).offset(skip).limit(limit).all()
def create_user(db: Session, user: UserCreate):
db_user = User(email=user.email, hashed_password=pwd_context.hash(user.password))
db.add(db_user); db.commit(); db.refresh(db_user)
return db_user
def update_user(db: Session, user_id: int, data: UserUpdate):
db_user = get_user(db, user_id)
if not db_user: return None
for k, v in data.model_dump(exclude_unset=True).items():
setattr(db_user, k, v)
db.commit(); db.refresh(db_user)
return db_user