简单学习了一些基础且常用的模型,下面稍微在学点复杂点的模型和使用方法
@注意:对参数parameter
目录结构做了优化:
│ ├── types # 声明入参和出参对应的Pydantic模型
│ │ ├── __init__.py
│ │ ├── request # 入参模型
│ │ └── response # 出参模型
1. 参数模型补充
1.1 多参数接收
1.定义模型
在app/types/request/demo_param.py
文件中,新增内容如下:
...
class StudentParam(BaseModel):
"""
学生信息
"""
name: constr(min_length=2, max_length=4) # 长度
age: conint(ge=18, le=30) # 整数范围:18 <= age <= 30
class_name: str # 班级名称
class ClassInfoParam(BaseModel):
"""
班级信息
"""
class_name: str # 班级名称
class_num: int # 班级人数
teacher_name: str # 老师名称
2.编写路由
在app/router
下,新增demo_router.py
文件,内容如下:
...
@router.post("/query/pydantic/multipleParamReceive")
async def multipleParamReceive(student: request.StudentParam, classInfo: request.ClassInfoParam):
"""
请求体-多参数接收-演示
"""
return {
"msg": "请求体-多参数接收",
"result": {
"student": student,
"classInfo": classInfo,
}
}
3.验证结果
1.2 嵌套模型
1.定义模型
在app/types/request/demo_param.py
文件中,新增内容如下:
...
class NestedParam(BaseModel):
"""嵌套模型"""
teacher_id: int # 老师id
teacher_name: str # 老师名称
class_list: List[ClassInfoParam] # 老师下班级列表
...
2.编写路由
在app/router
下,新增demo_router.py
文件,内容如下:
...
@router.post("/query/pydantic/nestedModel")
async def nestedModelDemo(param: request.NestedParam):
"""
请求体-嵌套模型接收-演示