반응형
BIG
어쩌다보니 백엔드를 구축해야 하는 프로젝트가 생겼다.
node.js도 찍먹을 해보긴 하였지만 아무래도
내가 좋아하는 파이썬으로 쉽게 배울 수 있는 느낌이라 쭉 fastAPI를 공부중..
그러던중 pydantic이라는 모델 검사??하는 녀석이 버전이 1이었던 것을 기준으로
보통 서적에서는 많이 다루던데
이제는 v2가 나온지 좀 되었기 때문에
책을 보며 따라쳐도 어찌저찌 내가 버전업을 억지로 해야한다.
class TaskCreateResponse(BaseModel):
id: int
class Config:
orm_mode = True
이것은 기본적인 베이스모델을 맏고 orm을 사용할 적에 잘 적용해라 라는 뜻인데
pydantic의 v2 에서는 다음과 같게 써야한다.
from pydantic import BaseModel, Field, ConfigDict
class TaskCreateResponse(TaskCreate):
model_config = ConfigDict(from_attributes=True)
id: int
문서나 에러에서도 보면
orm_mode대신 from_attributes를 사용하라고 나와있다..
그리고나서 중요한 점은..
class TaskBase(BaseModel):
title: str | None = Field(None, examples="세탁소 맡긴것 찾기")
원래는 위처럼 적어도 examples가 잘 작동을 하였으나
v2 로 넘어옴 + ConfigDict(from_attributes) 를 사용하게 된다면
위에는 에러로 표시된다.
더 이상 examples가 단일 객체로 적용이 되지 않게 된것..
class TaskBase(BaseModel):
title: str | None = Field(None, examples=["세탁소 맡긴것 찾기"])
이런식으로 리스트로 묶어주어야한다.
이 부분은.. 일단 내가 맨날 까먹어서 기억하기 위한 개발로그...이기에
오늘은 여기까지!
반응형
BIG
'프로그래밍 > Backend' 카테고리의 다른 글
[AWS] CloudFront, S3 이미지 pdf 다운로드 캐싱에러 log (0) | 2025.02.10 |
---|---|
[FastAPI] AWS LightSail에서 DockerCompose ssl (https) 적용하기 (0) | 2025.02.05 |
[FastAPI] docker compose로 fastapi & mysql aws LightSail에 배포하기 (0) | 2025.01.23 |
[FastAPI] MySQL 한글이 깨져 보일 때 (feat: 파워쉘, cmd등) (0) | 2025.01.16 |