FastAPI/데이터베이스

ORM 적용 - GET 단일 조회 API

hyunai 2026. 6. 16. 22:11
# repository.py

# 단일 todoId 조회
# ToDO가 존재하는 경우에는 ToDO를 return / 존재하지 않는 경우에는 None을 return
def get_todo_by_todo_id(session: Session, todo_id: int) -> ToDo | None:
    return session.scalar(select(ToDo).where(ToDo.id == todo_id))
    
    
# main.py

@app.get("/todos/{todo_id}", status_code=200)
def get_todo_handler(
        todo_id: int,
        session: Session = Depends(get_db),
) -> ToDoSchema:
    todo: ToDo | None = get_todo_by_todo_id(session=session, todo_id=todo_id)
    if todo:
        return ToDoSchema.model_validate(todo)
    # 만약 todo가 없다면
    raise HTTPException(status_code=404, detail="Todo Not Fount")

전의 글인 밑의 글과 동일하게 전체 조회에서 단일 id로 검색해서 조회하면 된다.

https://hyunai.tistory.com/144

 

ORM 적용 - GET 전체 조회 API / Python - Generator

# connection.pydef get_db(): # 세션 팩토리를 이용해서 세션 객체를 만들어준다. session = SessionFactory() try: yield session finally: session.close()generator를 만들어준다.FastAPI를 사용해서 데이버베이스에 접근할 수

hyunai.tistory.com

swagger ui로 확인하기

존재하는 id

존재하지 않는 id

'FastAPI > 데이터베이스' 카테고리의 다른 글

ORM 적용 - POST API  (0) 2026.06.24
파이참 - Refactoring  (0) 2026.06.16
ORM 적용 - HTTP Response 처리  (1) 2026.06.14
ORM 적용 - GET 전체 조회 API / Python - Generator  (0) 2026.06.14
ORM 모델링  (1) 2026.06.09