学习FastAPI,定义模型时使用Pydantic
在其他的web框架中Django或Flask都有相应的表单类用来校验前端数据的合法行在FaskAPI中则用Pydantic来实现。Pydantic 是 FastAPI 的数据守门员你只用声明我想要什么类型的数据、有什么规则剩下的解析、校验、报错、文档全部自动生成。定义模型时一般使用Pydantic的BaseModel的类进行继承。from fastapi import FastAPI from pydantic import BaseModel app FastAPI() # 定义数据模型请求体格式 class User(BaseModel): name: str age: int email: str # 使用模型 app.post(/users/) async def create_user(user: User): # FastAPI 会自动验证 user 的数据 # user.name, user.age, user.email 都是经过校验的 return { message: f用户 {user.name} 创建成功, age: user.age, email: user.email }Pydantic是 Python 生态中最流行的数据验证库它的核心功能可以概括为利用 Python 的类型提示Type Hints在运行时对数据进行校验、转换和序列化。不使用该库则需要自己手写很多校验逻辑。例app.post(/login) async def login(email: str, password: str): # 你得自己写一堆校验逻辑 if not email or not in email: raise HTTPException(400, 邮箱格式错误) if not password or len(password) 6: raise HTTPException(400, 密码太短) ...语法含义BaseModelPydantic 的基类继承它表示这是一个数据模型Pydantic 会自动解析类型注解并生成校验逻辑Annotated[str, Field(...)]Pydantic v2 推荐写法。Annotated是 Python 标准库typing的类型意思是类型str的基础上附加一些元数据。Field(...)就是那些元数据校验规则、描述等Field(...)...Ellipsis表示该字段必填后面跟着的是约束条件min_length、max_length、description等description邮箱生成 API 文档Swagger/OpenAPI时会显示这个说明注在 Pydantic v1 中更常见的写法是email: str Field(..., description邮箱)但这种方式有个副作用——把默认值和类型信息混在了一起。v2 推荐用Annotated将类型和元数据解耦更加清晰。# 定义模型 class Login(BaseModel): # Field的第一个参数为...时代表不能被省略的意思。 email :Annotated[str, Field(..., description邮箱)] password :Annotated[str, Field(..., min_length6, max_length10)] # ❌ 错误Field(...) 不能单独作为类型注解 email: Field(..., description邮箱) # 类型是 Field不对 # ❌ 错误只写 str没有配置 email: str # 可以运行但没有 description、没有显式必填标记 # ✅ 正确Annotated 把两者结合 email: Annotated[str, Field(..., description邮箱)]核心能力主要体现在以下几个方面类型提示驱动的验证你只需要用标准的 Python 类型注解定义一个数据模型继承BaseModelPydantic 就会自动根据这个模型校验数据。比如将age: int定义为整数如果传入字符串thirty就会抛出详细的错误。智能的数据转换它不仅仅是检查类型还会尝试在合理的情况下将数据转换成你定义的类型。例如你可以把字符串123传给一个定义为int的字段Pydantic 会自动将其转换成整数123这在与 API 或配置交互时非常方便。强大的设置管理Settings Management除了验证单个数据Pydantic 还通过BaseSettings提供了一套完整的配置管理方案。它能自动从环境变量、.env文件甚至命令行参数中读取配置并统一转换成你定义的 Python 对象是管理项目配置的“利器”。优秀的性能和生态它的核心验证逻辑由高性能的 Rust 语言编写速度非常快。同时它也是 FastAPI、LangChain、Hugging Face 等热门库的底层依赖每天被下载超过 7000 万次经过了大量实战检验。简单来说Pydantic 通过声明式而非手写大量if语句的方式为 Python 应用的数据安全性和可维护性提供了坚实基础

相关新闻

解构 K8s 弹性管道:Metrics‑Server 指标采集与 HPA 自动扩缩容深度剖析

解构 K8s 弹性管道:Metrics‑Server 指标采集与 HPA 自动扩缩容深度剖析

Kubernetes Metric Server 学习参考:Metric Server 环境准备 rootmaster30:~# kubectl create ns metric rootmaster30:~# kubectl config set-context --current --namespace metricMetrics-Server 概述 我们在使用 Kubernetes 中过程中面临的问题: 如…

2026/8/29 20:39:01 阅读更多 →
IDA*算法精解:从暴力搜索到启发式剪枝,解决“排书”难题

IDA*算法精解:从暴力搜索到启发式剪枝,解决“排书”难题

1. 从一道“排书”题说起:当暴力搜索遇上剪枝艺术 最近在算法社区里,一道编号为180的“排书”问题讨论热度不低。乍一看标题,你可能会觉得这不过是又一道普通的深度优先搜索(DFS)练习题,但真正上手后&#…

2026/8/30 23:54:56 阅读更多 →
HN头条AI内容占比调查:技术人如何重建内容可信度?

HN头条AI内容占比调查:技术人如何重建内容可信度?

如果你也习惯在早上刷一遍 HN(Hacker News)首页,最近应该能明显感觉到一种变化:头条标题越来越工整,结构越来越标准,很多文章读起来像同一套模板换了个主题。这不是错觉。一位作者针对“HN 头条有多少是 AI…

2026/8/29 20:38:00 阅读更多 →

最新新闻

STM32WB无线MCU的HSE晶振调谐:从AN5042到实际调试经验

STM32WB无线MCU的HSE晶振调谐:从AN5042到实际调试经验

做无线产品这几年,我有个越来越深的体会:射频指标不过关,大家第一反应都是调天线、调匹配网络、换PA,很少有人会第一时间怀疑那颗不起眼的32MHz晶体。但STM32WB这类无线MCU,RF收发器的本振时钟源头就是接在HSE引脚上的…

2026/8/30 23:55:02 阅读更多 →
STM32WB5MM-DK开发板实战:从BLE例程到FUS升级全攻略

STM32WB5MM-DK开发板实战:从BLE例程到FUS升级全攻略

“UM2825”这个编号刚拿到手的时候,容易被人当成又一份平平无奇的开发板用户手册。但如果你手里恰好是ST官方那块“具有STM32WB5MMG模块的探索套件”,我建议你在插USB之前,先把这份文档过一遍。它对应的板卡型号是STM32WB5MM-DK,核…

2026/8/30 23:55:02 阅读更多 →
STM32WB双核OTA升级实战:FUS、BLE协议栈与系统Bootloader全解析

STM32WB双核OTA升级实战:FUS、BLE协议栈与系统Bootloader全解析

做低功耗蓝牙产品的朋友,应该对STM32WB不陌生。这颗芯片最大的卖点是双核:Cortex-M4跑业务应用,Cortex-M0专门跑射频协议栈,BLE、Zigbee、Thread这些无线协议栈都是官方编译好的固件,你直接调用就行。但卖点往往也是痛…

2026/8/30 23:55:02 阅读更多 →
STM32U5实战:IEC 60730 Class B自测试库与避坑指南

STM32U5实战:IEC 60730 Class B自测试库与避坑指南

1. 为什么你的STM32U5项目早晚要碰到IEC 60730自测试做家电类产品开发的人,对IEC 60730这几个字应该都不陌生。这几年国内做白色家电、小家电、电动工具、智能家居控制器的朋友,被客户追着要Class B认证的情况越来越普遍。STM32U5作为ST主推的低功耗高性…

2026/8/30 23:55:02 阅读更多 →
基于机器学习的图像特征提取预测植物叶绿素含量

基于机器学习的图像特征提取预测植物叶绿素含量

简介:本资源是一份面向人工智能与农业交叉领域初学者及科研实践者的机器学习实战项目,聚焦于利用图像数据预测植物叶绿素含量这一关键农情参数,解决传统化学检测效率低、成本高的痛点,适用于智慧农业、作物表型分析与遥感监测等场…

2026/8/30 23:55:02 阅读更多 →
AI 日报 2026-08-29

AI 日报 2026-08-29

今日关键词:Codex 持久模式、GLM-5.3 权重开源兑现、Claude Code 受限模式、Copilot 三连发、新势力齐聚机器人、WRC 产业化纵深一、AI Coding 动态1. OpenAI 测试 Codex "持久模式":AI 一直干到你让它"休眠"《连线》通过检查 Codex…

2026/8/30 23:54:02 阅读更多 →

日新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/8/30 0:00:01 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/8/30 0:00:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/8/30 0:00:01 阅读更多 →

周新闻

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

2026/8/30 0:00:01 阅读更多 →
数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

2026/8/30 0:00:01 阅读更多 →
蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

2026/8/30 0:00:01 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/30 21:10:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/30 18:07:21 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/30 21:10:44 阅读更多 →