当前位置: 首页 > wzjs >正文

做中东服装有什么网站知名的网络公司

做中东服装有什么网站,知名的网络公司,电商网站建设任务分解结构,中国风手机网站模板Pydantic 是一个用于数据验证和设置管理的 Python 库,其核心功能围绕 数据验证、类型检查 和 模型配置 展开。以下是 Pydantic 的主要功能分类及其简要说明和示例: 1. 数据验证与类型检查 Pydantic 的核心功能是自动验证数据的类型、格式和约束条件。 …

Pydantic 是一个用于数据验证和设置管理的 Python 库,其核心功能围绕 数据验证类型检查模型配置 展开。以下是 Pydantic 的主要功能分类及其简要说明和示例:


1. 数据验证与类型检查

Pydantic 的核心功能是自动验证数据的类型、格式和约束条件。

1.1 字段类型验证
  • 功能:根据定义的字段类型(如 int, str, datetime 等)验证输入数据。
  • 示例
    from pydantic import BaseModelclass User(BaseModel):id: intname: stris_active: bool = True# 正确输入
    user = User(id=1, name="Alice", is_active=True)  # 通过验证# 错误输入(类型不匹配)
    user = User(id="1", name="Bob", is_active="yes")  # 抛出 ValidationError
    
1.2 必填字段与默认值
  • 功能:强制要求某些字段必须存在,或为字段设置默认值。
  • 示例
    class User(BaseModel):id: int  # 必填字段,无默认值name: str = "Guest"  # 可选字段,有默认值is_active: bool = Trueuser = User(id=2)  # name 会自动填充为 "Guest"
    user = User(id=3, name="Charlie")  # 忽略 is_active 时默认为 True
    
1.3 字段约束
  • 功能:通过 Field 装饰器设置字段的约束(如最小值、最大长度等)。
  • 示例
    from pydantic import Fieldclass Product(BaseModel):price: float = Field(gt=0, description="价格必须大于0")description: str = Field(max_length=100)product = Product(price=-10)  # 抛出 ValidationError(价格小于0)
    

2. 模型配置

通过 Config 类自定义模型行为。

2.1 全局配置
  • 功能:设置模型的默认行为(如忽略额外字段、命名风格等)。
  • 示例
    class ConfigModel(BaseModel):class Config:extra = "ignore"  # 忽略输入中的额外字段allow_mutation = False  # 禁止修改模型实例的字段underscore_attrs_are_private = True  # 允许下划线开头的私有字段
    
2.2 自定义命名风格
  • 功能:将字段名转换为不同的风格(如 camelCasesnake_case)。
  • 示例
    class CamelCaseModel(BaseModel):class Config:alias_generator = lambda s: s.lower()  # 将字段名转换为小写allow_population_by_field_name = Truemodel = CamelCaseModel(**{"userName": "Alice"})  # 通过 "userName" 赋值给 "user_name" 字段
    

3. 自定义验证逻辑

允许添加自定义的验证规则,支持字段级和模型级验证。

3.1 字段级验证
  • 功能:对单个字段进行验证。
  • 示例
    from pydantic import validatorclass User(BaseModel):password: strpassword_confirm: str@validator("password_confirm")def passwords_match(cls, v, values, **kwargs):if "password" in values and v != values["password"]:raise ValueError("Passwords do not match")return v
    
3.2 模型级验证(根验证)
  • 功能:对整个模型的数据进行验证。
  • 示例
    class User(BaseModel):age: intis_student: bool@root_validatordef validate_age(cls, values):if values.get("is_student") and values.get("age") > 30:raise ValueError("Students cannot be older than 30")return values
    

4. 模式生成(Schema 生成)

生成模型的 JSON Schema 或其他格式描述,常用于 API 文档(如 FastAPI)。

4.1 生成 JSON Schema
  • 功能:自动为模型生成结构化描述。
  • 示例
    from pydantic import BaseModel, Fieldclass Item(BaseModel):name: str = Field(..., description="Item name")price: float = Field(..., gt=0, description="Price must be positive")print(Item.schema_json(indent=2))  # 输出 JSON Schema
    

5. 模型继承与组合

支持通过继承复用字段和验证逻辑,或通过嵌套模型组合复杂结构。

5.1 模型继承
  • 功能:继承父类的字段和配置。
  • 示例
    class BaseUser(BaseModel):name: stremail: strclass AdminUser(BaseUser):role: str = "admin"admin = AdminUser(name="Bob", email="bob@example.com")  # 继承 BaseUser 的字段
    
5.2 嵌套模型
  • 功能:将模型作为字段嵌入到其他模型中。
  • 示例
    class Address(BaseModel):street: strcity: strclass User(BaseModel):name: straddress: Address  # 嵌套 Address 模型
    

6. 数据转换与序列化

Pydantic 可以自动转换输入数据,并提供便捷的序列化方法。

6.1 自动类型转换
  • 功能:将输入数据转换为目标类型。
  • 示例
    class Config(BaseModel):port: int  # 输入可以是字符串,但会自动转换为整数config = Config(port="8080")  # 转换成功,port 的值为 8080
    
6.2 序列化与反序列化
  • 功能:将模型转换为字典或 JSON,或从字典创建模型实例。
  • 示例
    user = User(name="Alice", age=30)
    user_dict = user.dict()          # 转换为字典
    user_json = user.json()          # 转换为 JSON 字符串
    user_from_dict = User.parse_obj(user_dict)  # 从字典创建实例
    

7. 错误处理

Pydantic 提供结构化的错误信息,便于调试和用户反馈。

7.1 验证错误
  • 功能:当验证失败时抛出 ValidationError,并包含详细错误信息。
  • 示例
    try:user = User(name="Bob", age="thirty")  # age 需要是 int
    except ValidationError as e:print(e.errors())  # 输出错误信息,如:[{'loc': ('age',), 'msg': 'value is not a valid integer', 'type': 'type_error.integer'}]
    

8. 高级功能

8.1 自定义数据类型
  • 功能:通过 Constrained Types 或自定义类型扩展验证逻辑。
  • 示例
    from pydantic import constrclass User(BaseModel):username: constr(min_length=3, max_length=10)  # 自定义字符串约束
    
8.2 异步支持
  • 功能:在异步环境中使用 async 验证或解析数据。
  • 示例
    async def async_validate(data):user = await User.async_parse_obj(data)  # 异步解析
    
8.3 动态模型
  • 功能:根据运行时条件动态创建模型。
  • 示例
    from pydantic import create_modelDynamicModel = create_model("DynamicModel", x=(int, ...), y=(str, "default"))
    

应用场景

  • API 输入验证:确保 API 请求参数符合预期(如 FastAPI 中的请求体验证)。
  • 配置管理:验证和管理应用程序的配置参数。
  • 数据解析:解析并标准化来自外部系统的数据(如 CSV、JSON 文件)。
  • 类型安全编码:结合静态类型检查工具(如 mypy),提升代码健壮性。

通过以上分类,Pydantic 提供了一套全面的数据验证和模型管理工具,适用于需要严格数据校验和类型安全的场景。


文章转载自:

http://HkIx54p6.qsyyp.cn
http://XANkmGbg.qsyyp.cn
http://dDWwsUD3.qsyyp.cn
http://7IDv9VzB.qsyyp.cn
http://PuUQi5AD.qsyyp.cn
http://Go6NCrpI.qsyyp.cn
http://gueYLUuC.qsyyp.cn
http://OiGRyXci.qsyyp.cn
http://Xr7FNApv.qsyyp.cn
http://JM1VtpPJ.qsyyp.cn
http://1rT2WFNO.qsyyp.cn
http://pKEEDwXr.qsyyp.cn
http://I2KLpofE.qsyyp.cn
http://RMTHbrJE.qsyyp.cn
http://19waPeaA.qsyyp.cn
http://75AeYW5b.qsyyp.cn
http://ERgSiamx.qsyyp.cn
http://MUlV5Dxe.qsyyp.cn
http://NAWCdGhg.qsyyp.cn
http://Uh12WbIB.qsyyp.cn
http://gwNmVs0F.qsyyp.cn
http://gqyEd3Uw.qsyyp.cn
http://CQhGRMpm.qsyyp.cn
http://ZqrCoG7n.qsyyp.cn
http://QMpFKfQU.qsyyp.cn
http://pwBKmvL6.qsyyp.cn
http://hlBMtjl3.qsyyp.cn
http://CQUYXD1f.qsyyp.cn
http://uEKMBLtG.qsyyp.cn
http://FPyMVD5e.qsyyp.cn
http://www.dtcms.com/wzjs/678956.html

相关文章:

  • 企业网站制作托管minify wordpress
  • 动漫网站设计源代码wordpress 首页调用文章
  • 在vs2010里怎么做网站模仿别人网站
  • 把网站提交给百度大侠seo外链自动群发工具
  • 个人网站能不能做论坛网站的推广和宣传工作如何做
  • 免费做外贸网站狮山网站制作
  • 安徽省建设厅官方网站进不去巩义网站建设联系电话
  • 网站建设工作落实情况我的网站模板下载 迅雷下载 迅雷下载
  • 内蒙包头网站开发网站设计制作电话多少
  • 广东省建设工程金匠奖公布网站服务器安全配置
  • 织梦响应式网站wordpress 中文 图片
  • 网站建设软硬件要求苏州建筑业网
  • 旧域名怎么做新网站怎么做视频平台网站吗
  • 使用php的大型网站wordpress指针美化
  • 做装修公司网站找网站设计公司 看那些
  • 个人网站备案地址驰业传媒网站建设
  • 凡科建站可以多人协作编辑吗wordpress怎么弹出需要输入
  • 网站建设推广公司哪家好logo大师
  • 网站备案需要多长时间wordpress首页循环
  • 东莞中小企业网站建设微网站建设对微网站进行策划
  • 台州电子商务网站开发wordpress read more
  • 矿山建设网站东营住房和城乡建设厅网站
  • 南宁建设工程质量网站建设通和天眼查网站
  • 企业网站代维护三明网站制作
  • c 网站设计wordpress 国外在访问
  • 外贸公司建网站一般多少钱展会电子商务网站如何建设
  • 科技部网站建设合同范本4399小游戏大全
  • 一个静态网站怎么做一个网站没有备案
  • 公司想做一个网站首页怎么做一个人制作网站
  • 瑞安这边有没有做网站的农机网站建设目标