栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

8.响应模型示例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

8.响应模型示例

响应模型示例
  • 响应模型示例

    • 这个示例中需要安装几个插件:用 EmailStr 需要 pip install pydantic[email]
    • pip install python-multipart
    class UserIn(baseModel):
        username: str
        password: str
        email: EmailStr
        mobile: str = "10086"
        address: str = None
        full_name: Optional[str] = None
    
    
    class UserOut(baseModel):
        username: str
        email: EmailStr  # 用 EmailStr 需要 pip install pydantic[email]
        mobile: str = "10086"
        address: str = None
        full_name: Optional[str] = None
    
    
    users = {
        "user01": {"username": "user01", "password": "123123", "email": "user01@example.com"},
        "user02": {"username": "user02", "password": "123456", "email": "user02@example.com", "mobile": "110"}
    }
    
    
    @app02.post("/response_model/", response_model=UserOut, response_model_exclude_unset=True)
    async def response_model(user: UserIn):
        """response_model_exclude_unset=True表示返回值中默认值不包含在响应中,仅包含实际传入的值,如果实际给的值与默认值相同也会包含在响应中"""
        print(user.password)  # password不会被返回
        # return user
        return users["user01"]
    

  • 返回数据字段选择

    @app02.post(
        "/response_model/attributes",
        #response_model=UserOut,
        # response_model=Union[UserIn, UserOut],  # 取并集
        response_model=List[UserOut],  # 返回userout对象列表
        #response_model_include=["username", "email", "mobile"],  #返回包含字段
        #response_model_exclude=["mobile"]  # 排除字段
    )
    async def response_model_attributes(user: UserIn):
        """response_model_include列出需要在返回结果中包含的字段;response_model_exclude列出需要在返回结果中排除的字段"""
        # del user.password  # Union[UserIn, UserOut]后,删除password属性也能返回成功
        #return user
        return [users['user01'], users['user02']]
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530349.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号