866 字
2 分钟
FastAPIfastapi
FastAPI 学习路线图:把教程式切分重新排成一条主线

FastAPI 官方教程很适合查文档,但连续学习时会显得碎。我把目前的 1-21 份笔记和官方重点章节重新排成一条更适合入门的路径。

FastAPI 官方教程本身没有问题,问题更多出在它的组织目标。

它一方面是教程,另一方面又明显承担了"查询手册"的角色,所以经常会出现几种体验:

  • 先抛出一个高级概念,再在后面单独解释
  • 一个功能点单独拆成一章,连续阅读时会显得碎
  • 明明属于同一条请求流的内容,被拆散到不同页面

拿它查资料很舒服,拿它从头系统学,就会有一点"章节非常细、跳跃又频繁"的感觉。

这组文集就是按"构建一个服务时,脑子里会经历的顺序"重新排的。顺序不是跟着目录走,而是跟着一条请求真正流过应用时会经过的层次走。

1. 应用入口、fastapi devuvicorn#

先把最小应用跑起来,理解:

  • app = FastAPI() 到底是什么
  • fastapi dev 在开发阶段帮了什么
  • uvicorn 为什么是 FastAPI 常见搭档
  • pyproject.toml 里的 entrypoint 是什么

2. URL 输入:路径参数与查询参数#

把最常见、也最容易混在一起的两类输入先分清:

  • 路径参数负责定位资源
  • 查询参数负责附加过滤和控制条件

3. 请求体与 Pydantic 模型#

当输入不再只是 URL 上的几个值,而是一整个 JSON 结构时,就进入请求体和模型层。

这一步会把下面几件事连起来:

  • 请求体建模
  • 多个 body 参数
  • 嵌套模型
  • 示例数据和文档展示

4. 参数来源与校验#

Query / Path / Body / Cookie / Header 统一成一个心智模型:

  • 参数从哪里来
  • 规则放在哪里
  • 复杂校验怎样接进来

5. 输出层:响应模型、状态码与更新语义#

前面主要都在看"请求怎么进来",这一块开始看"响应怎么出去":

  • response_model
  • 返回值过滤
  • 常见类型系统
  • status_code / tags / description
  • jsonable_encoder
  • PUT / PATCH 的更新思路

6. 请求编码切换:表单与文件上传#

这一层会把"不是 JSON 的请求"补完整:

  • Form
  • File
  • UploadFile
  • 为什么上传文件一定会牵涉到 multipart/form-data

7. 依赖注入、yield、错误处理与安全起步#

这一层开始接近"真正可维护的服务":

  • Depends
  • 类依赖、子依赖、全局依赖
  • yield 依赖和资源释放
  • HTTPException
  • 自定义异常处理器
  • OAuth2PasswordBearer

8. Bigger Applications:APIRouter、多文件结构、生命周期#

当单文件应用开始变大,问题就不再是"写不写得出来",而是"怎么组织":

  • APIRouter
  • include_router
  • 模块划分
  • lifespan

9. 中间件、CORS、后台任务#

这是"路由之外还有什么东西会围绕请求工作"的一层:

  • 中间件的请求/响应包裹关系
  • CORS 为什么是浏览器问题,不是 FastAPI 特有问题
  • BackgroundTasks 什么时候合适

10. 测试、CLI、手动运行与 Workers#

最后把"怎么运行"和"怎么验证"补齐:

  • TestClient
  • pytest
  • fastapi dev
  • fastapi run
  • uvicorn main:app
  • --reload
  • --workers

这条顺序跟官方目录不一样,但更接近第一次系统学 FastAPI 时真正需要的顺序:

  1. 先把服务跑起来
  2. 再理解请求从哪里进来
  3. 再理解响应怎么出去
  4. 再补依赖、错误、安全
  5. 最后进入工程化和部署

专题阅读

FastAPI

这篇文章属于同一条阅读链。你可以直接在这里切换,不用再回到列表页重新找。

当前进度1 / 11

阅读导航

文章目录

当前阅读位置将在这里显示

0 节