从这句话开始谈起数据校验和设定数据类型:from pydantic import BaseModel

涉及BaseModel的源代码

from pydantic import BaseModel 

class User(BaseModel):
    username: str
    email: Union[str, None] = None
    full_name: Union[str, None] = None
    disabled: Union[bool, None] = None

Pydantic 提供了数据校验和设定数据类型的功能,使得处理数据更加安全和方便。

详细解释

class User(BaseModel)::

  • 定义了一个名为 User 的类,并继承自 BaseModel。这意味着 User 类将拥有 Pydantic 的所有功能。

字段定义:

  • username: str:

    • username 是一个字符串类型的字段。这是一个强制性的字段(因为没有提供默认值),因此每次实例化这个类时都必须提供这个字段。
  • email: Union[str, None] = None:

    • email 是一个字符串类型或 None 的字段,也就是可选字段。它的默认值是 None,可以不提供。如果提供的话,必须是字符串类型。
    • Union[str, None] 表示这个字段可以是 str 类型或 None
  • full_name: Union[str, None] = None:

    • full_name 是一个可选的字符串字段,默认值为 None。用法与 email 字段类似。
  • disabled: Union[bool, None] = None:

    • disabled 是一个布尔类型或 None 的可选字段,默认值为 None。它用来表示用户是否被禁用。

总得来说,这个 User 类使用了 Pydantic 提供的类型提示和默认值设置,以确保在创建实例时,字段的数据类型是正确的,同时也可以方便地设定默认值和处理可选字段。通过这种方式,数据校验变得更简单,并减少了运行时错误的发生。

典型应用

字典转模型和模型转字典

# 字典转模型
user_dict = {"username": "john", "email": "[email protected]"}
user = User(**user_dict)

# 模型转字典
user_dict = user.dict()

猜你喜欢

转载自blog.csdn.net/skywalk8163/article/details/143495209