FastAPI.7 CRUD Utility

BodeulMaNN·2022년 12월 9일
0

FastAPI

목록 보기
7/8

CRUD 유틸리티

이름조작SQL
Create생성INSERT
Read(Retrieve)읽기(또는 인출)SELECT
Update갱신UPDATE
Delete(Destroy)삭제(파괴)DELETE

CRUD기본 사용법

sql_app/crud.py
이 파일에는 데이터베이스의 데이터와 상호 작용하는 재사용 가능한 함수가 있습니다.

  • from sqlalchemy.orm import Session : db매개변수의 유형을 선언하고 함수에서 더 나은 유형검사 및 완성기능을 사용할 수 있다.

다음을 위한 유틸리티 함수 생성:

  • ID와 이메일로 단일 사용자를 읽습니다.
  • 여러 사용자를 읽습니다.
  • 여러 항목을 읽습니다.
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와 같은 데이터베이스의 새 데이터가 포함되도록)
profile
반갑습니다

0개의 댓글