zoukankan      html  css  js  c++  java
  • 5ResponseModel响应模型

    使用返回值模型

    
    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"}
    }
    
    
    @app04.post("/response_model/", response_model=UserOut, response_model_exclude_unset=True)
    async def response_model(user: UserIn):
        """
        response_model_exclude_unset=True  表示默认值不包含在响应中,仅包含实际给的值,如果实际给的值与默认值相同也会包含在响应中
        response_model: 使用哪个返回模型
        """
        print(user.password)  # password不会被返回
        # return user
        return users["user01"]
    
    

    返回模型参数参数的使用

    @app04.post(
        "/response_model/attributes",
        response_model=UserOut,
        # response_model=Union[UserIn, UserOut],    # 使用两个模型类的并集
        # response_model=List[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 [user, user]
    

    响应状态吗

    @app04.post("/status_code", status_code=200)
    async def status_code():
        return {"status_code": 200}
    
    
    @app04.post("/status_attribute", status_code=status.HTTP_200_OK)
    async def status_attribute():
        print(type(status.HTTP_200_OK))
        return {"status_code": status.HTTP_200_OK}
    
  • 相关阅读:
    cs231n --- 3 : Convolutional Neural Networks (CNNs / ConvNets)
    cs231n --- 1:线性svm与softmax
    Python的下划线_
    Python的类(class)
    python self
    MFC中应用对象的成员:窗口指针m_pMainWnd说明
    MSTP+VRRP组合组网
    VRRP组网下同网段内配置基于全局地址池的DHCP服务器
    路由器/交换机Console口登录密码丢失后如何恢复
    交换机处于同一网络作为DHCP中继与服务器
  • 原文地址:https://www.cnblogs.com/oysq/p/15660021.html
Copyright © 2011-2022 走看看