# 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 |