본문 바로가기

전체 글37

Pydantic을 활용한 JSON, dict 다루기 Pydantic을 통해 Object를 JSON으로 Serialization 하거나JSON을 Object로 Deserialization 할 수 있습니다. import jsonplayer = { "team": "MTU", "name": "박지성",}json_str = json.dumps(player, ensure_ascii=False).replace(' ', '')print(json_str)json 라이브러리를 통해 dict를 json으로 변경공백을 지워줘야 합니다. from pydantic import BaseModelclass Player(BaseModel): team: str name: strplayer = { "team": "MTU", "name": "박지성",}pla.. 2024. 4. 1.
UploadFile, 이미지 form-data 이미지 등의 파일을 업로드할 때는 form-data로 데이터를 받습니다."file": { "filename": "test.jpg", "file": { "_file": {}, "_max_size": 1048576, "_rolled": false, "_TemporaryFileArgs": { "mode": "w+b", "buffering": -1, "suffix": null, "prefix": null, "encoding": null, "newline": null, "dir": null, "er.. 2024. 3. 28.
Request에서 form-data, query-string 가져오기 클라이언트가 API를 호출할 때 담긴 데이터가 Request에 담깁니다.import jsonfrom fastapi import APIRouter, Requestrouter = APIRouter()@router.post( "/url", ...)async def mapping_endpoint(request: Request): ''' Request는 await object이기 때문에 await request.form()으로 받아야 한다. dict, list 타입으로 요청 form data를 확인할 수 있다. ''' form_param = await request.form() # _dict, _list 속성 print(f"dict to json => {json.d.. 2024. 3. 28.
python-dotenv, pydantic_settings를 통한 환경 변수 관리 FastAPI 사용 기준, main.py 파일과 동일한 경로에 .env 파일을 위치시켜야 한다.# .envENVIRONMENT=LOCALpython-dotenv 라이브러리가 .env 파일을 자동으로 읽는다.from dotenv import load_dotenv# setup environmentload_dotenv()environment = os.getenv("ENVIRONMENT")print(f"env: {environment}") # LOCAL서버 환경 변수에 설정된 값은 load_dotenv()를 선언하지 않아도 된다. pydantic_settings를 통해 환경 변수를 설정할 수도 있다.import osfrom enum import Enumfrom typing import ClassVarfrom p.. 2024. 3. 28.