본문 바로가기

파이썬21

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.
f-string # 숫자에 콤마 표시 f"{price:,}" # 1000 -> 1,000 # 숫자 앞에 패딩 처리 f"{num:02}" # 1 -> 01 f"{num:03}" # 1 -> 001 2024. 3. 28.
DTO, 객체 인스턴스 생성 파이썬 dict 자료 구조를 통해 객체 인스턴스를 생성할 때, 아래의 코드를 작성할 수 있다.args = { "a": "apple", "b": "banana",}dto = DTO(**args) SQLAlchemy에서도 위와 비슷한 코드 작성이 가능하다.# row는 SQLAlchemy의 ROW 객체dto = DTO(**row._mapping) 반대로 Row to dictdict(row._mapping) 2024. 3. 26.