model_json_schema示列
from pydantic import BaseModel, Field, ValidationError, field_validator
class User(BaseModel):
id: int = Field(default=0, lt=100, gt=0)
username: str
email: str
@field_validator('username')
def name_must_alpha(cls, v):
assert v.isalpha(), 'name must be alpha'
return v
if __name__ == '__main__':
print(User.model_json_schema())
id
字段是一个整数类型(int
)。- 它的默认值是0(
default=0
)。 - 字段的值必须小于100(
lt=100
)。 - 字段的值必须大于0(
gt=0
)。
输出如下:
{
'properties': {
'id': {
'default': 0,
'exclusiveMaximum': 100,
'exclusiveMinimum': 0,
'title': 'Id',
'type': 'integer'
},
'username': {
'title': 'Username',
'type': 'string'
},
'email': {
'title': 'Email',
'type': 'string'
}
},
'required': [
'username',
'email'
],
'title': 'User',
'type': 'object'
}