07 FastAPI FastAPI 入门FastAPI 是什么FastAPI 是 Python 里写 Web API 的框架特点特点说明快性能接近 Node.js、Go简单几行代码就能起一个 API自动文档启动后访问 /docs 有交互式文档类型注解和第 19 课的类型注解无缝配合它和 Flask、Django 的区别Flask → 轻量灵活老项目多Django → 全栈带 ORM/模板适合完整网站FastAPI → 专注 API现代、异步友好Agent/LLM 项目首选最小示例与路由一个路径 一种方法 一个端点处理函数名随意不影响 URL返回 dict / list 自动变 JSON。fromfastapiimportFastAPI appFastAPI()app.get(/)defread_root():return{message:Hello, FastAPI!}app FastAPI()— 创建应用app.get(/)— 注册 GET 路由uvicorn ... :app --reload— 启动服务改代码自动重启http://127.0.0.1:8000/ → 看到 JSONhttp://127.0.0.1:8000/docs → Swagger 自动文档非常重要uvicorn 启动方式cdD:\yunyanshijie\skill_test\python_study .venv\Scripts\activate pipinstallfastapi uvicorn uvicorn lessons.stage3.28_fastapi_intro:app--reload方式 1命令行更接近实际部署习惯。uvicorn lessons.stage3.28_fastapi_intro:app--reload默认地址http://127.0.0.1:8000方式 2文件内启动if__name____main__:importuvicorn uvicorn.run(code.stage3.28_fastapi_intro:app,reloadTrue)参数类别路径参数Path ParameterURL 路径里的动态部分用 {变量名} 声明app.get(/users/{user_id}/posts/{post_id})defget_post(user_id:int,post_id:int):return{user_id:user_id,post_id:post_id}/users/3/posts/7 → user_id3, post_id7FastAPI 自动把字符串转成 int。查询参数Query ParameterURL 里 ? 后面的部分/items?skip0limit10app.get(/items)deflist_items(skip:int0,limit:int10):return{skip:skip,limit:limit,items:[]}路径参数 vs 查询参数路径参数查询参数写法/hello/{name}函数普通参数 默认值位置URL 路径里?keyvalue典型用途定位某个资源筛选、分页、可选配置例子/users/1/items?skip0limit10请求体与数据校验Pydantic BaseModel 是什么FastAPI 内置 Pydantic用来定义「请求/响应数据的形状」并自动校验。frompydanticimportBaseModelclassMessageCreate(BaseModel):name:strmessage:strpriority:int1classMessageCreateResponse(BaseModel):status:strecho:str含义调用方必须传 JSON且包含 name 和 message两个字段都必须是字符串缺字段或类型不对 → FastAPI 自动返回 422 Unprocessable Entity并说明哪里错了FastAPI 怎么接收请求体app.post(/messages)defcreate_message(data:MessageCreate)-MessageCreateResponse:return{status:ok,echo:f{data.name}说{data.message}}FastAPI 会自动读 Body 里的 JSON转成 MessageCreate 实例校验失败就返回 422不会进你的函数访问字段用 data.name、data.message像对象属性不是 data[“name”]。环境变量.env、python-dotenv、API Key 安全环境变量是什么操作系统和进程里的一组「键值对」程序启动时可以读取。# 注释以 # 开头 API_KEYsk-your-real-key-here APP_NAMEPython Study DEBUGtrue规则一行一个变量KEYvalue不要加引号除非值本身需要引号等号两边不要空格KEYvalue不是 KEY value值里有特殊字符时再用引号fromdotenvimportload_dotenv# dot.importos# Operating Systemload_dotenv()# 默认读取项目根目录的 .envvalueos.getenv(API_KEY)# 没有则返回 Nonevalueos.getenv(API_KEY,)# 没有则返回默认值 load_dotenv() 做的事读取 .env 文件把里面的键值写进 os.environ之后 os.getenv() 就能读到用时机在读取任何配置之前调用一次通常放在文件最顶部。Windows PowerShell 里也可以临时设置$env:API_KEY sk-testpython lessons/stage3/30_env_config.py关掉终端就没了。开发时更常用 .env 文件 持久保存。.env.example — 给队友的模板真实 Key 不能分享但要告诉别人需要哪些变量# .env.example — 可以提交到 Git API_KEYyour-api-key-here APP_NAMEPython Study DEBUGfalse

相关新闻

最新新闻

C++核心运算符深度解析:从指针引用到成员访问的语法精髓

C++核心运算符深度解析:从指针引用到成员访问的语法精髓

1. 项目概述:从符号到语义,理解C的“语法标点”刚接触C时,很多人会被代码里那些看似随意散落的符号搞得晕头转向。&、*、.、->、:、::……它们不像、-、*、/那样直观,更像是语法中的“标点符号”,但每一个都承载…

2026/7/31 6:47:28
软件性能测试工具的发展以及不同性能测试工具之间的使用对比总结

软件性能测试工具的发展以及不同性能测试工具之间的使用对比总结

软件性能测试工具的发展以及不同性能测试工具之间的使用对比总结 一、性能测试工具的发展历程软件性能测试是确保系统在高负载下稳定运行的关键环节。随着软件架构从单体应用向微服务、云原生演进,性能测试工具也经历了从简单脚本到分布式、智能化的演变。### 1.1 初…

2026/7/31 6:47:28
Coze智能客服平台:快速搭建与优化实战指南

Coze智能客服平台:快速搭建与优化实战指南

1. 项目概述:Coze智能客服的商业价值与技术定位在数字化转型浪潮中,智能客服已成为企业降本增效的标配工具。传统方案动辄需要数月开发周期和数十万投入,而Coze平台的出现彻底改变了这一局面。这个由字节跳动推出的AI Bot开发平台&#xff0c…

2026/7/31 6:47:28
宜搭低代码平台开发经验总结与避坑指南

宜搭低代码平台开发经验总结与避坑指南

前言 本文是笔者在宜搭低代码平台开发过程中积累的经验总结与避坑指南,旨在帮助开发者更高效地使用平台,规避常见陷阱,提升开发质量。 正文 隐藏字段要设置始终提交!数据绑定或者数据填充,要注意切换之前的数据仍然保留…

2026/7/31 6:47:28
vmware workstation官方下载教程 手把手

vmware workstation官方下载教程 手把手

2026/7/31 6:47:28
身份证归属地查询接口:从鉴权到缓存机制的工程化接入指南

身份证归属地查询接口:从鉴权到缓存机制的工程化接入指南

1. 适用场景 在用户准备、实名认证、风控审核、数据治理等业务中,常常需要根据身份证号快速获知持卡人的户籍所在省、市、区。例如: 用户准备环节:校验用户填写的户籍地是否与身份证号前6位匹配,用于辅助防刷。风控规则引擎&…

2026/7/31 6:42:28

月新闻