from pydantic import BaseModel, field_validator, EmailStr, Field
class Employee(BaseModel):
name: str
age: int = Field(gt=18, description="Must be over 18")
contact: EmailStr
@field_validator('name')
def name_must_contain_space(cls, v):
if ' ' not in v:
raise ValueError("name must contain a space")
return v.title()
emp = Employee(name="bob smith", age=25, contact="bob@company.com")
print(emp.name)
这个代码就是使用pydantic来进行验证的。
BaseModel
这个玩意肯定是很重要的,就是说,场景是什么呢?
场景就是你定义一个对象,那么你就可以使用BaseModel,就是继承这个BaseModel。
那么你就能够进行数据验证了。
第一点:类型注解
类型注解:类型
使用pydantic,你当然是可以对类的属性的类型进行说明的,可以使用|
符号的。
比如:int | None
类型注解:默认值
你当然还是可以对属性的取值来设置默认值的,可以使用=
符号。
比如:int | None = None
。
第二点:校验约束
age: int = Field(gt=18, description="Must be over 18")
@field_validator('name')