FastAPI 表面是「Python Web 框架」,系统掌握时跨三层:
| 架构层 | 学什么 |
|---|---|
| 框架 API | 路由模型、依赖、中间件 |
| 运行时模型 | ASGI、异步事件循环、生命周期 |
| 工程形态 | 分层、鉴权、测试、部署、与 Agent/MCP 共进程 |
段末注释:ASGI(Asynchronous Server Gateway Interface,异步服务器网关接口)是 Python 异步 Web 服务器与应用之间的标准接口;本系列后文统一称 ASGI。
2. 学习诊断(learn-new-knowledge)
按站内 skill learn-new-knowledge 做一次总诊断,后续每篇只做「局部诊断 → 方法 → 行文」。
| 维度 | 本系列取值 |
|---|---|
| 学什么 | FastAPI 作为 HTTP/API 服务底座(含异步与工程化) |
| 知识类型 | 概念/原理 + 程序性技能 + 综合领域(三选叠加) |
| 目标层级(布鲁姆) | 主目标:应用 / 分析;关键概念升到理解;终篇触及创造(能搭可维护服务) |
| 约束 | 在职碎片时间优先;要防假懂;要能接到 MCP/Agent 实战 |
总路径黄金组合:
- 西蒙学习法:本系列即「聚焦蓝图」(约 8 篇闭环,不发散到 Django 全家桶)。
- 极度学习 + 刻意练习:每篇带 drills / 最小可运行项目,直接练目标技能。
- 费曼 + 双重编码:原理篇强制「白话讲解 + 一张结构图」。
- 主动回忆 + 间隔重复:每篇文末「合书自测」;术语/状态码/依赖顺序做闪卡。
- 70-20-10:约 70% 写代码与改错,20% 对照官方文档/源码片段,10% 读本系列讲解。
3. 系列目录与方法映射
每篇固定三元:知识点类型 → 主方法 → 行文模板(写作时按模板组织章节,读者按模板自学)。
| 编号 | 标题(计划) | 知识类型 | 布鲁姆目标 | 主方法 | 辅助方法 | 行文模板(见 §4) |
|---|---|---|---|---|---|---|
| 00 | 系列导读与学习方法(本文) | 元框架 / 领域地图 | 评价(选路径) | 思维导图 + 布鲁姆 | 西蒙学习法 | T0 地图篇 |
| 01补 | 网络基础:TCP / HTTP / WebSocket | 概念 / 原理 | 理解 | 费曼 + 双重编码 | 组块化 | T1 补充篇 |
| 01 | 心智模型:ASGI 与请求生命周期 | 概念 / 原理 | 理解 | 第一性原理 + 费曼 | 双重编码 | T1 原理篇 |
| 02 | 路由与数据模型(Query/Path/Body/响应) | 程序技能 + 离散 API | 应用 | 组块化 + 刻意练习 | 主动回忆、精细加工(挂 Pydantic) | T2 模式篇 |
| 02补 | HTTP 请求方法对比手册 | 概念 / 事实清单 + 辨析 | 理解 → 分析 | 对比 + 费曼 | 组块化、工具书检索 | T3 工具书 |
| 02补2 | HTTP 状态码行业共识手册 | 事实清单 + 辨析 | 理解 → 应用 | 共识清单 + 对比 | 闪卡、与方法交叉 | T3 工具书 |
| 03 | 依赖注入与分层架构 | 概念 + 程序 | 应用 / 分析 | 双重编码 + 组块化 | 费曼 | T1 + T2 |
| 04 | 中间件、异常处理与日志 | 程序技能 | 应用 / 分析 | 刻意练习 + 交错练习 | 康奈尔笔记(排错栏) | T3 辨析篇 |
| 05 | 异步、后台任务与流式响应 | 概念 + 程序 | 理解 → 应用 | 第一性原理 + 费曼 | 双重编码、刻意练习 | T1 + T3 |
| 05补 | 异步原理实现与踩坑手册 | 概念 / 原理 + 排错清单 | 理解 → 分析 | 第一性原理 + 费曼 | 交错排错、工具书检索 | T1 + T3 工具书 |
| 06 | 鉴权与安全基线 | 程序 + 事实清单 | 应用 / 评价 | 刻意练习 + 主动回忆 | 间隔重复(清单闪卡) | T3 + T4 |
| 07 | 测试与项目骨架 | 程序技能 | 应用 / 创造 | 极度学习 + 科尔布循环 | 刻意练习 | T4 项目篇 |
| 08 | 实战:HTTP API 与 MCP 共进程 | 综合领域 | 创造 | 70-20-10 + 科尔布 | 极度学习、费曼复盘 | T4 项目篇 |
与邻系边界:
- Flask 速查仍留在 Python-包-Flask,本系列不重写 Flask。
- MCP 协议与 Server 写法仍以 MCP 系列为准;本系列只讲「FastAPI 如何挂载 / 共进程」。
4. 四种行文模板(写作规范)
后续正文必须在文首声明本篇模板代号(如 行文:T1 原理篇),便于检索与复用。
T0 地图篇(本篇)
- 诊断表 + 目录映射 + 自测总表。
- 少代码;给「怎么学」而非「怎么写接口」。
T1 原理篇(防假懂)
对应:第一性原理 → 费曼 → 双重编码。
建议章节顺序:
- 问题:若没有该概念,系统会坏在哪里?
- 拆到底:最少必要组件(例如:接收字节流的服务器 / 应用可调用对象 / 路由表)。
- 白话重建:用外行能懂的类比串起来(费曼稿,避免黑话堆叠)。
- 结构图:一张请求生命周期或组件关系图(双重编码;图可后补)。
- 最小代码:只证明原理,不做完整业务。
- 费曼自测:三问——用两句话解释;指出与 Flask/WSGI 的一点本质差异;画出请求从进到出的 4~6 步。
T2 模式篇(组块 + drills)
对应:组块化 → 刻意练习 → 主动回忆。
建议章节顺序:
- 组块清单:3~7 个可复用模式(如「Path 参数块」「Body+响应模型块」)。
- 每个组块:触发条件 → 最小代码 → 常见误用一句。
- Drills:5~8 道「只改一处」的小练习(刻意练习)。
- 合书提取:遮住代码,默写一种模式的签名与返回形状。
- 联网:明确链接已有笔记(如 Pydantic),不重复讲校验器全家桶。
T3 辨析篇(交错 + 排错)
对应:交错练习 → 刻意练习 → 康奈尔式排错栏。
建议章节顺序:
- 易混对照表(A vs B:中间件 vs 依赖、HTTPException vs 自定义 handler、sync vs async 路由)。
- 交错题:题面打乱类型,禁止按章节刷同质题。
- 错误用例 → 现象 → 根因 → 修法(右栏可当「线索栏」)。
- 验收:在新项目里 15 分钟内接好异常+日志骨架。
T4 项目篇(做中学)
对应:极度学习(直接练)→ 科尔布循环 → 70-20-10。
建议章节顺序:
- 成功标准(可运行、可测、可复述架构)。
- 直接任务:目标技能场景(真实 API / 挂载 MCP),禁止「只抄教程」。
- 科尔布四拍:做 → 反思(哪里卡住)→ 抽象(提炼 3 条规则)→ 再实验(改一版)。
- 反馈回路:
pytest/ 类型检查 / 手工 curl 或 TestClient。 - 费曼收束:用一页纸向同事讲清「请求怎么走进你的分层」。
5. 建议节奏与工具
| 节奏 | 建议 |
|---|---|
| 单篇 | 1~2 个番茄钟读完 T1/T2 讲解 + 1~2 个番茄钟做 drills |
| 巩固 | 篇末自测当日做;第 3、7 天用闪卡抽术语(间隔重复) |
| 交错 | 学完 04/05/06 后,混做「鉴权 + 异常 + 异步」综合小错题 |
| 环境 | 与站内约定一致:项目级 .venv、pyproject.toml、uv 管理依赖 |
| 闪卡候选 | 状态码习惯、依赖注入顺序、lifespan 职责、OAuth2/API Key 选型一句、TestClient 用法 |
70-20-10 落地上:
- 70%:每篇 drills / 迷你服务改写。
- 20%:对照 FastAPI 官方文档 对应章节与报错信息。
- 10%:读本系列讲解与原理图。
6. 系列级自测(何时算「系统掌握」)
合上资料,若下列都能独立完成,可认为本系列闭环:
- 费曼:向非 Web 同事讲清「一次 HTTP 请求如何经过 uvicorn → FastAPI → 依赖 → 路由函数 → 响应」。
- 应用:从空目录搭出带分层、校验、统一异常、基础鉴权、pytest 的 API 骨架。
- 分析:给定一段混用 sync/async 与阻塞 IO 的代码,指出风险点与改法。
- 创造:把一个已有工具函数暴露为 HTTP,并说明如何(或不该)与 MCP Server 共进程(对接 MCP 系列)。
7. 写作与阅读约定
- 缩写首次出现:中文全称(英文全称,缩写);段末用引用块作段末注释(与站内体例一致)。
- 数学式用 LaTeX(若出现复杂度/概率等)。
- 代码给最小可运行片段;完整项目放到 07/08。
- 每篇文首:系列导航 + 本篇行文模板 + 本篇方法;文末:合书自测 + 闪卡候选 + 下一篇预告。
小结
- 本系列目标是把 FastAPI 建成可复用的 Python 服务底座,不是再写一篇包速查。
- 方法来自 learn-new-knowledge:总路径用西蒙蓝图 + 极度学习;原理用费曼/第一性原理/双重编码;API 模式用组块+drills;易混点用交错练习;终局用项目与科尔布复盘。
- 系列共 00–08,另含 01补 网络基础、02补 HTTP 方法对比、02补2 状态码共识、05补 异步原理与踩坑;建议顺序:00 → 01补 → 01 → 02 → 02补 → 02补2 → … → 05 → 05补 → … → 08,学完用 §6 系列级自测 验收。