• pydantic学习与使用8.requiredfields必填字段省略号( ...) 上海


    前言

    必填字段可以仅用注释来声明,也可以使用省略号 ( ...) 作为值:

    必填字段

    必填字段,可以仅用注释来声明,以下name和age2个字段是必填字段

    from pydantic import BaseModel
    
    
    class User(BaseModel):
        name: str
        age: int
        city: str = '上海市'
    

    必填字段也可以使用省略号 ( ...) 作为值

    from pydantic import BaseModel
    
    
    class User(BaseModel):
        name: str = ...
        age: int = ...
        city: str = '上海市'
    

    也可以用 Field 类,这里 Field 类指的是 field function.

    from pydantic import BaseModel, Field
    
    
    class User(BaseModel):
        name: str = ...
        age: int = Field(...)
        city: str = '上海市'
    

    这里 name 和 age 都是必填字段,但是str = ...这种语法在 mypy 里并不会工作,所以在v1.0版本后,就尽量不用省略号了

    必填可选字段(Required Optional fields)

    由于v1.2 版本注释仅适用于可空字段(Optional[...], Union[None, ...] and Any)和带省略号(…)的可空字段作为默认值,不再表示相同的内容。

    from typing import Optional
    from pydantic import BaseModel, Field, ValidationError
    
    
    class Model(BaseModel):
        a: Optional[int]
        b: Optional[int] = ...
        c: Optional[int] = Field(...)
    
    
    print(Model(b=1, c=2))
    #> a=None b=1 c=2
    try:
        Model(a=1, b=2)
    except ValidationError as e:
        print(e)
        """
        1 validation error for Model
        c
          field required (type=value_error.missing)
        """
    

    在上面示例中,a,b,c都可以传None值,但是 a是可选的,可以不用传值。b和c是必填项,可以传None值。

  • 相关阅读:
    RabbitMQ-RPC版主机管理程序
    FTP
    主机管理程序
    高级FTP
    选课系统
    电子银行购物商城
    计算器
    员工信息查询系统
    工资管理系统
    三级菜单
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/15921690.html
Copyright © 2020-2023  润新知