728x90
반응형

2024/06/20 3

[FastAPI] 12. Update: PUT, PATCH

PUT, PATCHPUT 요청은 전체 객체를 대체하는 데 사용클라이언트가 전체 객체를 제공하여 서버에 저장된 기존 객체를 완전히 대체@app.put("/items/{item_id}", response_model=Item)async def update_item(item_id: str, item: Item): update_item_encoded = jsonable_encoder(item) items[item_id] = update_item_encoded return update_item_encodedPATCH 요청은 부분 업데이트에 사용클라이언트가 업데이트하려는 필드만 제공하고, 나머지 필드는 그대로 유지exclude_unset 옵션True로 설정 시: Pydantic 모델에서 설정되지 않은..

[FastAPI] 11. JSON 호환 인코더: jsonable_encoder

jsonable_encoderFastAPI에서는 데이터 타입(Pydantic 모델 등)을 JSON 호환 형태(예: dict, list 등)로 변환해야 하는 경우 사용ex) 데이터베이스에 저장할 때, JSON으로 응답할 때작동원리 예시Pydantic 모델 변환: Pydantic 모델을 딕셔너리로 변환datetime 변환: datetime 객체를 ISO 형식의 문자열로 변환UUID 변환: UUID 객체를 문자열로 변환Enum 변환: Enum 객체를 해당 값으로 변환set 변환: set 객체를 리스트로 변환JSON 호환 형태 반환: 최종적으로 JSON으로 직렬화할 수 있는 Python 표준 데이터 구조(딕셔너리, 리스트 등)를 반환from datetime import datetimefrom fastapi im..

[FastAPI] 10. Form Data & Request File

Form과 FileHTML의 form()은 데이터를 서버에 전송할 때 JSON과 다른 인코딩 방식을 사용하기에 Form()을 사용해서 처리Form 안에서 파일 업로드를 하는 부분에 대해서는 File()이나  UploadFile() 형식으로 처리즉, HTML의 form 안에 있는 데이터를 처리할 때, 파일 형식이라면 File(), UploadFile()을 쓰고 나머지는 Form() 사용 Username: Password: File: Upload from typing import Annotatedfrom fastapi import FastAPI, Form, File, UploadFileapp = Fast..

728x90
반응형