Python框架篇(3):FastApi-响应模型

简单学习了一些基础且常用的模型,下面稍微在学点复杂点的模型和使用方法

@注意:对参数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):
    """
    请求体-嵌套模型接收-演示
   
  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值