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

外贸展示型模板网站可以自己做网站卖东西

外贸展示型模板网站,可以自己做网站卖东西,网站轮播动态图如何做,荆州seo优化pydantic库介绍 pydantic 是一个基于 Python 类型提示(Type Hints)的数据验证和解析库,主要用于确保输入数据的结构和类型符合预期。它通过定义数据模型自动完成验证、类型转换和序列化,广泛应用于 API 开发、配置管理和数据处理…

pydantic库介绍

pydantic 是一个基于 Python 类型提示(Type Hints)的数据验证和解析库,主要用于确保输入数据的结构和类型符合预期。它通过定义数据模型自动完成验证、类型转换和序列化,广泛应用于 API 开发、配置管理和数据处理等领域,主要有以下几个特点:

  • 提供类型安全的数据验证
  • 简化复杂数据结构的处理
  • 与 FastAPI 等现代框架深度集成

安装pydantic

  1. 使用pip安装Pydantic

    pip install pydantic
    

pydantic核心特性

  1. 基于类型提示的模型定义

    使用 Python 原生类型注解(如 strintList)定义字段类型,支持嵌套模型和复杂数据结构

    示例

    from pydantic import BaseModel
    class User(BaseModel):id: intname: str = "John Doe"  # 默认值email: str | None = None  # 可选字段
    
  2. 自动化数据验证

    类型检查:自动验证输入数据是否符合字段类型(如字符串长度、数值范围)

    自定义验证器:通过 @validator 装饰器实现复杂逻辑(如密码匹配、邮箱格式)

    from pydantic import field_validator
    class Product(BaseModel):price: float@field_validator("price")def validate_price(cls, v):if v <= 0:raise ValueError("价格必须为正数")return v
    
  3. 数据转换与序列化

    自动类型转换:如将字符串 "123" 转为整数 123

    序列化支持:通过 .dict().json() 方法将模型转为字典或 JSON 字符串

  4. 错误处理与文档生成

    详细错误报告:验证失败时返回字段级错误信息(如 "age must be ≥ 18"

    OpenAPI 集成:与 FastAPI 配合自动生成 API 文档

  5. 高性能

    核心验证逻辑用 Rust 编写,速度优于纯 Python 实现的库(如 Marshmallow)

pydantic结合fastApi使用

  1. 定义请求参数模型,模型是可以继承的,以站点为例

    from pydantic import BaseModel, Field, field_validator
    from typing import List, Optional
    from datetime import dateclass StationBase(BaseModel):station_group_id: int = Field(..., gt=0, example=1, description="站点组ID")station_name: str = Field(...,min_length=1,max_length=64,example="上海虹桥站",description="站点名称(1-64字符)",)location: Optional[str] = Field(None, max_length=128, example="上海市闵行区")online_number: int = Field(..., ge=0, example=10, description="在线设备数量")total_number: int = Field(..., gt=0, example=20, description="总设备数量")power: float = Field(..., gt=0, example=100.5, description="装机功率(kW)")capacity: float = Field(..., gt=0, example=200.0, description="装机容量(kWh)")commissioning_date: date = Field(..., example="2025-01-01")user_list: List[int] = Field(default=[], example=[1, 2], description="关联用户ID列表")class StationCreate(StationBase):passclass StationEdit(StationBase):station_id: int = Field(..., gt=0, example=1, description="要修改的站点ID")class StationDelete(BaseModel):station_id: int = Field(..., gt=0, example=1, description="要删除的站点ID")class StationQuery(BaseModel):user_id: int = Field(..., gt=0, example=1, description="用户ID")class StationGet(BaseModel):station_id: int = Field(..., gt=0, example=1, description="站点ID")
    
  2. fastApi接口里面加入请求参数模型

    @router.post("/add_station", tags=["Station"])
    async def add_station(request: Request,station_create: StationCreate,station_dao: StationDao = Depends(StationDao),
    ):# 其他内容if await station_dao.add_station(station_create.station_group_id,station_create.station_name,station_create.location,station_create.online_number,station_create.total_number,station_create.power,station_create.capacity,station_create.commissioning_date,station_create.user_list,):return JSONResponse({"status": 200,"msg": "添加站点成功!",})else:return JSONResponse({"status": 400,"msg": "添加站点失败!",})# 其他内容@router.post("/delete_station", tags=["Station"])
    async def delete_station(request: Request,station_delete: StationDelete,station_dao: StationDao = Depends(StationDao),
    ):# 其他内容# 其余接口
    
  3. 自定义全局错误消息返回

    from fastapi.exceptions import RequestValidationError@app.exception_handler(RequestValidationError)
    async def validation_exception_handler(request, exc):errors = []for error in exc.errors():field = error["loc"][-1]msg = error.get("msg", "参数错误")errors.append({"field": field, "message": msg})return JSONResponse(status_code=status.HTTP_422_UNPROCESSABLE_ENTITY,content={"status": 422, "msg": "参数校验失败", "errors": errors},)
    

样例

  1. pydantic模型里面设置某个参数限制为正数

    class StationBase(BaseModel):# 其他online_number: int = Field(..., ge=0, example=10, description="在线设备数量")total_number: int = Field(..., gt=0, example=20, description="总设备数量")# 其他
    
  2. 请求参数online_number,total_number为负数

    在这里插入图片描述

    接口返回参数校验失败,error信息是pydantic默认的生成的


文章转载自:

http://NLNwD37o.fpmgb.cn
http://52ZHRt6X.fpmgb.cn
http://nErO5W6j.fpmgb.cn
http://ENGS5xJd.fpmgb.cn
http://F17eUm4i.fpmgb.cn
http://YkgHa31z.fpmgb.cn
http://kYkroUFc.fpmgb.cn
http://BFcUzLyM.fpmgb.cn
http://KZwrpHYD.fpmgb.cn
http://zBEJnV0Y.fpmgb.cn
http://Me5SArS4.fpmgb.cn
http://9bQluLNz.fpmgb.cn
http://NVqC0zHI.fpmgb.cn
http://tcgUsOtB.fpmgb.cn
http://GUiAOmXK.fpmgb.cn
http://Ubh7U7w8.fpmgb.cn
http://pnILhBaG.fpmgb.cn
http://vQSJeheI.fpmgb.cn
http://jK4F1I6T.fpmgb.cn
http://Vc9zKZNI.fpmgb.cn
http://SJBLONan.fpmgb.cn
http://64OZnOpK.fpmgb.cn
http://LZpyJaOH.fpmgb.cn
http://yRBtlzyD.fpmgb.cn
http://U92P0WMf.fpmgb.cn
http://SUDN66hW.fpmgb.cn
http://NJ0QRNvb.fpmgb.cn
http://7cL5g4ZX.fpmgb.cn
http://Q4EknnfE.fpmgb.cn
http://TVUtk56T.fpmgb.cn
http://www.dtcms.com/wzjs/725304.html

相关文章:

  • 直播网站会计上大额网站费如何做分录
  • 淘宝联盟网站怎么做wordpress取消菜单
  • 建立公司企业网站推广网站制作
  • 有专业做线切割配件的网站吗沭阳网页设计
  • 外国网站设计风格网络营销具有什么特点
  • 网站建设宣传预算前端素材网站
  • 自适应网站做mip改造教育类网页设计素材
  • iis网站视频无法播放山西建设官方网站
  • 网站怎么做支付系统wordpress wpyou
  • 铁路建设标准网站网站如何做微信支付
  • wordpress jetpack 使用郑州seo优化顾问
  • 做网站的收费网站title修改
  • 石家庄制作网站四川盼之网络科技官网
  • 淘宝网站优化实例网站域名是指什么意思
  • 机票酒店网站建设会计可以做网站么
  • 如何查询网站接入商做一斗地主网站多少钱
  • 金华在线制作网站连云港优化网站团队
  • 做建筑机械网站那个网站好wordpress 修改页面链接地址
  • 公司网站建站要多少钱一年排名优化工具
  • 视频网站东单网站建设
  • asp 大型网站开发徐州鸿美网站建设
  • 河南省内 在哪个网站做商检表北京seo网站优化公司
  • 茂名专业做网站郑州网站公司哪家好
  • 潍坊网站建设壹品网络百度关键词搜索怎么收费
  • php网站开发视频教程下载苏州旅游网站设计
  • 做分类信息网站如何制作网站一般使用的软件有哪些
  • 中天建设集团网站全屏网站设计技巧
  • 杭州网站建设公司上海的所有公司
  • 凡科建设网站安全吗现在1做啥网站流量大
  • diywap手机网站系统本科软件开发专业