可以使用Field包来描述字段信息,Field中有各种tag,每个tag的功能如下
| tag | 说明 |
|---|---|
| description | 描述该字段 |
| example | 给出示例 |
| regex | 校验字段是否满足该正则表达式 |
| title | 字段标题 |
| min_length | 最小长度,值为整形 |
| max_length | 最大长度,值为整形 |
示例: 这里的Optional是非必填的意思
username: Optional[str] = Field(description='用户姓名',title='用户名称' ,min_length=1, max_length=255, example='张三', regex='张三|李四')
针对正则表达式,常用的有
1.手机号校验
regex=r'^1\d{10}$'
2.邮箱校验
regex='^\w+([-+.]\w+)*@\w+([-.]\w+)*.\w+([-.]\w+)*$'
3.可选项校验
这里是只能传 Male或者 Female
regex='Male|Female'
4.6位数字校验码
regex=r'^\d{6}$'
判断一个值的范围可以使用pydantic内置数据类型conint(这里年龄最小是1岁,最大149岁)
from pydantic import Field,conint
age: conint(ge=0, le=150) = Field(description='年龄')