FastAPI Put Request를 통한 DB 업데이트 - 40

2023. 1. 4. 17:42·Develop/FastAPI
728x90
SMALL
PUT을 통해서 데이터베이스에 데이터를 업데이트해보는 것이 목표

 

1. 데이터를 업데이트하기 위한 PUT 함수 생성

@app.put("/{todo_id}")
async def update_todo(todo_id: int, todo: Todo, db: Session = Depends(get_db)):
    todo_model = db.query(models.Todos).filter(models.Todos.id == todo_id).first()
    
    if todo_model is None:
        raise http_exception()
    
    todo_model.title = todo.title
    todo_model.description = todo.description
    todo_model.priority = todo.priority
    todo_model.complete = todo.complete
    
    db.add(todo_model)
    #db.flush()
    db.commit()

※ 코드 해석

  • 매개변수로 Todo의 BaseModel을 받고, get_db 함수를 통해 db랑 연결한다.
  • DB에 만든 Table 모델을 가져와서 todo_model에 담는다.
  • Table 모델의 각각의 칼럼에 데이터를 담는다.
  • sqlalchemy의 add 매서드를 통해 todo_model을 insert 해준다.
    • add는 하나씩 데이터를 삽입 / add_all는 한 번에 데이터를 삽입
  • commit()은 해당 내용을 DB에 적용한다라는 뜻.
    • 번외로 flush()는 DB에 적용하기전 중간 단계라고 보면 된다.(DB에 적용 x)
    • add -> flush -> commit  or  add -> commit

 

3. Swagger 확인

※ GET요청했을 때 테이블에 저장된 데이터의 id를 볼 수 있다.

 

 

※ 매개변수로 BaseModel을 지정한 형식에 맞게 PUT을 날린다.

※ Code 200을 볼 수 있고 PUT API의 성공적인 return값을 볼 수 있다.

 

※ GET요청했을 다시 했을 때 업데이트 시킨 id의 데이터들이 바뀐 것을 볼 수 있다.

728x90
SMALL
저작자표시 비영리 변경금지 (새창열림)

'Develop > FastAPI' 카테고리의 다른 글

FastAPI Database Relationship / Foreign Key / Query- 42  (0) 2023.01.07
FastAPI Delete Request를 통한 데이터 삭제 - 41  (0) 2023.01.04
FastAPI Post Request를 통한 DB 저장 - 39  (0) 2023.01.04
FastAPI sqlalchemy filter 사용하기(select) - 38  (0) 2023.01.01
FastAPI SessionLocal을 통한 테이블 읽기 - 37  (0) 2022.12.31
'Develop/FastAPI' 카테고리의 다른 글
  • FastAPI Database Relationship / Foreign Key / Query- 42
  • FastAPI Delete Request를 통한 데이터 삭제 - 41
  • FastAPI Post Request를 통한 DB 저장 - 39
  • FastAPI sqlalchemy filter 사용하기(select) - 38
동석해요
동석해요
공부하고 싶은게 많은, 사소한 IT 지식들 공유
    250x250
  • 동석해요
    개발로 자기계발
    동석해요
  • 전체
    오늘
    어제
    • 분류 전체보기 (226)
      • Develop (126)
        • 기초지식 (12)
        • FastAPI (102)
        • Django (11)
      • Database & Data (62)
        • 기초지식 (16)
        • MySQL (29)
        • PostgreSQL (8)
        • 데이터 분석 (9)
      • 인공지능 (11)
        • PyTorch (9)
      • Cloud (8)
        • AWS (4)
        • GCP (2)
      • 버그처리 (14)
      • 회고 & 일상 (5)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
동석해요
FastAPI Put Request를 통한 DB 업데이트 - 40
상단으로

티스토리툴바