https://chunws13.tistory.com/46
회원가입, 로그인 기능이 완료되었으므로 이어서 메모 기능을 넣을 차례. 아직 DB 연결 하기 전 단계이므로 회원가입 테스트 했던 것과 같이
Fake DB를 사용하여 작동 여부 테스트를 해보자.
1. 코드
@app.get("/api/memo")
def get_memo():
return memo_db
@app.post("/api/memo")
def create_memo(Memo: Memo):
index = len(memo_db) + 1
memo_db[index] = Memo.content
return {index : memo_db[index]}
@app.put("/api/memo/{memo_id}")
def edit_memo(memo_id: int, Memo: Memo):
if memo_id not in memo_db:
return {"error" : "메모 정보가 없습니다."}
memo_db[memo_id] = Memo.content
return {memo_id : memo_db[memo_id]}
@app.delete("/api/memo/{memo_id}")
def delete_memo(memo_id: int):
if memo_id not in memo_db:
return {"error" : "메모 정보가 없습니다."}
memo_db[memo_id] = "삭제됨"
return memo_db
Get 요청으로는 모든 메모를 반환해서 보여주고, Post 요청으로는 현재 Fake DB 길이를 확인한 후 + 1을 하여 인덱스로 사용, 새로운 메모를 추가한다.
Put 요청으로는 메모 ID 와 내용을 받아 DB에서 해당 인덱스를 찾아 내용을 수정해주고
Delete 요청으로는 내용이 삭제되었다고 표기한다. Fake DB에서 인덱스 자체를 삭제하지 않는 이유는 Post 요청 시 인덱스 생성 기준이
DB의 길이이기 때문에 실제로 데이터를 삭제한다면 DB 길이가 감소하여 이후 Post 요청으로 데이터를 생성하는 경우 인덱스가 중복될 우려가 있기 때문.
2. 테스트 결과
CRUD 가 정상적으로 작동하는 것을 확인했으므로, 다음으로 실제 DB 에 데이터를 넣을 수 있도록 서버와 DB를 연결하도록 하자.
'Backend > Python' 카테고리의 다른 글
[FastAPI] Project Levup - 메모 수정 & 삭제 기능 만들기 (0) | 2023.11.29 |
---|---|
[FastAPI] Project Levup - 서비스 구조화하기 (0) | 2023.11.18 |
[FastAPI] Project Levup - 회원가입과 로그인 기능 만들기 (0) | 2023.11.16 |
[FastAPI] Project Levup - 시작하기 (0) | 2023.11.14 |
[Python] tkinter - 예약 타이머 만들기 - 기능 추가 2 (1) | 2023.11.14 |