pydantic.BaseModel
을 사용한다.BaseModel
을 사용해 필드를 정의하고 해당 필드에 대한 유효성 검사를 수행한다. @validator
@validator
대신 @root_validator
를 사용해 전체 모델을 대상으로 유효성 검사를 수행할 수 있다.@field_validator
pydantic
에서 사용할 수 있는 또 다른 유효성 검사 방법예를 들면
from pydantic import BaseModel, Field, ValidationError, root_validator, validator
class Item(BaseModel):
name : str
price : float = Field(..., gt=0)
# price 필드에 필요한 field_validator 정의
@validator('price')
def check_price(cls, v):
if v <= 0:
raise ValueError('price must be greater than 0')
return v
item1 = Item(name='apple', price=1.5)
print(item1)
try :
item2 = Item(name='banana', price=-2)
except ValidationError as e:
print(e)
위의 Item 모델에는 'name', 'price' 두 개의 필드가 있다.
'price' 필드는 0보다 큰지 확인하는 'field_validator'가 정의되어 있다.
이 유효성 검사는 해당 필드의 값만을 저장하며 다른 필드와 상호작용하지 않는다.