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

佛山网站维护站长工具亚洲

佛山网站维护,站长工具亚洲,网络建站步骤,建个网络平台多少钱Pydantic 概述 Pydantic 是一个 Python 库,主要用于数据验证和设置管理,通过 Python 类型注解来定义数据模型。它结合了 Python 的类型提示和运行时数据验证,确保数据符合预期格式,常用于 API 开发、配置管理和数据解析。 核心功…

Pydantic 概述

Pydantic 是一个 Python 库,主要用于数据验证和设置管理,通过 Python 类型注解来定义数据模型。它结合了 Python 的类型提示和运行时数据验证,确保数据符合预期格式,常用于 API 开发、配置管理和数据解析。


核心功能

数据验证
Pydantic 模型通过类型注解自动验证输入数据。如果数据不符合类型要求,会抛出清晰的错误信息。

数据转换
自动将输入数据(如 JSON、字典)转换为 Python 对象,支持嵌套模型和复杂类型(如 datetimeUUID)。

设置管理
通过 BaseSettings 类管理环境变量和配置,支持优先级排序(如环境变量 > 配置文件 > 默认值)。

与 FastAPI 集成
Pydantic 是 FastAPI 的默认数据模型库,用于请求/响应数据的校验和序列化。


基本用法

定义模型

通过继承 BaseModel 定义数据模型,字段类型使用 Python 类型注解。

from pydantic import BaseModel, ValidationErrorclass User(BaseModel):name:strage:intmail:str
tom = User(name='大黑驴', age=27, mail='ainiyou@163.com')
tom

User(name=‘大黑驴’, age=27, mail=‘ainiyou@163.com’)

数据验证与转换

实例化模型时自动验证数据,非法数据会触发 ValidationError。 在这里将name变成数字

User(name=111, age=27, mail='ainiyou@163.com')

在这里插入图片描述

打印错误信息

try:User(name=111, age=27, mail='ainiyou@163.com')
except Exception as e:print(e.json())

[
{“type”:“string_type”,
“loc”:[“name”],
“msg”:“Input should be a valid string”,
“input”:111,
“url”:“https://errors.pydantic.dev/2.10/v/string_type”
}
]

基本类型自动转化

Pydantic 会自动尝试将输入数据转化为模型中定义的类型。例如,字符串形式的数字会被自动转化为整数或浮点数。

User(name='小黑黑', age='12', mail='ainiyou@163.com')

User(name=‘小黑黑’, age=12, mail=‘ainiyou@163.com’)

邮箱验证

在 Pydantic 中,可以通过 EmailStr 类型或自定义正则表达式来验证邮箱格式。

from typing import Optional
from pydantic import BaseModel, EmailStrclass User(BaseModel):name:strage:intemail:EmailStrphone:Optional[str]=None
User(name='小黑黑', age=22, email='ainiyou@163.com')

User(name=‘小黑黑’, age=22, email=‘ainiyou@163.com’, phone=None)

User(name='小黑黑', age=22, email='ainiyou163.com')

在这里插入图片描述

Field 对象参数详解

Field 对象通常用于数据模型或表单验证中,定义字段的约束条件、默认值及其他属性。以下是常见参数的详细说明:

required
表示该字段是必填项。若未提供值且未设置默认值,系统会抛出验证错误。此参数通常用于强制用户输入关键信息。在Pydantic中,Field(...) 等价于 required=True

default
定义字段的默认值。如果用户未提供该字段的值,系统会自动填充此默认值。需注意:

  • 默认值为 None 时表示空值。
  • 该参数不能与 required=True 同时使用,否则逻辑冲突。

min_length 和 max_length
针对字符串类型字段的长度限制:

  • min_length:字符串的最小长度,低于此值会触发验证错误。
  • max_length:字符串的最大长度,超出此值会触发验证错误。

数值比较参数
适用于数值类型字段(如整数、浮点数)的边界条件:

  • gt(greater than):字段值必须大于指定值。
  • ge(greater than or equal):字段值必须大于或等于指定值。
  • lt(less than):字段值必须小于指定值。
  • le(less than or equal):字段值必须小于或等于指定值。

示例代码(以 Python 的 Pydantic 模型为例):

from pydantic import BaseModel, EmailStr, ValidationError, Field
class User(BaseModel):name:str=Field(...,min_length=1, max_length=10)age:int=Field(..., ge=0, le=200)email:EmailStrphone:str=Field(default='18103546785', min_length=11, max_length=11)
try:user = User(name='小黑黑', age=202, email='ainiyou163.com', phone='111111')
except ValidationError as e:print('error:', e.json())
print(user)

error: [
{“type”:“less_than_equal”,
“loc”:[“age”],
“msg”:“Input should be less than or equal to 200”,
“input”:202,"ctx:{“le”:200},
“url”:“https://errors.pydantic.dev/2.10/v/less_than_equal”},{“type”:“value_error”,“loc”:[“email”],“msg”:“value is not a valid email address: An email address must have an @-sign.”,“input”:“ainiyou163.com”,“ctx”:{“reason”:“An email address must have an @-sign.”},“url”:“https://errors.pydantic.dev/2.10/v/value_error”},{“type”:“string_too_short”,“loc”:[“phone”],“msg”:“String should have at least 11 characters”,“input”:“111111”,“ctx”:{“min_length”:11},“url”:“https://errors.pydantic.dev/2.10/v/string_too_short”}]
name=‘小黑黑’ age=22 email=‘ainiyou@163.com’ phone=‘1810546785’

转化为字典

# 转成json
user = User(name='小黑黑', age=22, email='ainiyou@163.com', phone='11111111111')
# 转字典
User.model_dump(user)

{‘name’: ‘小黑黑’, ‘age’: 22, ‘email’: ‘ainiyou@163.com’, ‘phone’: ‘11111111111’}

转化为json

User.model_dump_json(user)

‘{“name”:“小黑黑”,“age”:22,“email”:“ainiyou@163.com”,“phone”:“11111111111”}’

剩下的在探索agent源代码中持续积累,继续加油!!

自己独立做的菜,可以下口了,周末继续尝试

在这里插入图片描述

最近状态不好 试着减少跑量不看速度

在这里插入图片描述

早餐星巴克

在这里插入图片描述

楼道平板支撑

在这里插入图片描述

http://www.dtcms.com/wzjs/261547.html

相关文章:

  • 餐饮行业网站建设搜索引擎优化排名工具
  • 西乡专业网站建设国外免费推广网站有哪些
  • wordpress数据库详解电脑优化大师有用吗
  • 云南科技公司网站天津网站排名提升
  • 网站设计课程总结优化网站搜索排名
  • 家庭做网站百度问一问人工客服怎么联系
  • 利用网站开发诈骗百度扫一扫网页版
  • 什么网站做3d模型能赚钱免费自媒体网站
  • 网站卡的原因百度浏览器在线打开
  • 怎么帮自己做的网站申请地址公司搜索seo
  • 经营性网站备案申请书今日重大事件
  • 期货做程序化回测的网站上海seo推广服务
  • 做游戏视频网站用什么程序好百度竞价推广账户优化
  • 网站的彩色标签怎么做的怎么制作一个网站
  • wordpress一定要本地建站吗台湾新闻最新消息今天
  • 建设银行网站源码企业新闻稿发布平台
  • 经济与政府网站建设外链提交
  • 高校网站群建设青岛seo网络推广
  • 个人写真照seo没什么作用了
  • 太原公司网站建设自媒体是什么
  • 香河做网站短视频seo营销
  • 个人做健康网站好吗网络营销推广难做吗
  • 百度推广网站可以链接到同公司另一个网站吗百度推广找谁做
  • 英文b2c网站建设百度账号登录中心
  • 韶关住房和城乡建设网站无锡网站seo顾问
  • 珠海网站建设 超凡科技app推广工作是做什么的
  • 司机找事做那个网站靠谱南宁企业官网seo
  • 现在手机网站用什么做外链推广是什么意思
  • 游戏策划要学什么500强企业seo服务商
  • 网站首页html网站软件下载app