이름 | 조작 | SQL |
---|---|---|
Create | 생성 | INSERT |
Read(Retrieve) | 읽기(또는 인출) | SELECT |
Update | 갱신 | UPDATE |
Delete(Destroy) | 삭제(파괴) | DELETE |
sql_app/crud.py
이 파일에는 데이터베이스의 데이터와 상호 작용하는 재사용 가능한 함수가 있습니다.
다음을 위한 유틸리티 함수 생성:
from sqlalchemy.orm import Session
from . import models, schemas
def get_user(db: Session, user_id: int):
return db.query(models.User).filter(models.User.id == user_id).first()
def get_user_by_email(db: Session, email: str):
return db.query(models.User).filter(models.User.email == email).first()
def get_users(db: Session, skip: int = 0, limit: int = 100):
return db.query(models.User).offset(skip).limit(limit).all()
def create_user(db: Session, user: schemas.UserCreate):
fake_hashed_password = user.password + "notreallyhashed"
db_user = models.User(email=user.email, hashed_password=fake_hashed_password)
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
def get_items(db: Session, skip: int = 0, limit: int = 100):
return db.query(models.Item).offset(skip).limit(limit).all()
def create_user_item(db: Session, item: schemas.ItemCreate, user_id: int):
db_item = models.Item(**item.dict(), owner_id=user_id)
db.add(db_item)
db.commit()
db.refresh(db_item)
return db_item
create_user 및 create_user_item은 유틸리티함수를 생성하여 데이터를 생성하는 것이다.
- 데이터 로 SQLAlchemy 모델 인스턴스 를 만듭니다.
add
해당 인스턴스 개체를 데이터베이스 세션에 추가합니다.commit
데이터베이스에 대한 변경 사항(저장되도록).refresh
인스턴스(생성된 ID와 같은 데이터베이스의 새 데이터가 포함되도록)