章节摘要:本章回答两个问题——FastAPI 是什么,以及为什么在 2020 年之后有大量团队从 Flask、Django 甚至 Express 迁移过去。我们不背特性清单,而是把四个框架放在路由声明、数据校验、文档生成、异步支持、生态成熟度五个维度上逐一对照,让你看清 FastAPI 的优势从哪里来、边界在哪里。最后完成环境搭建,包括虚拟环境工具链的对比选择。
阅读完本章,你应当能够:
本章是全册的"地基章",不追求覆盖面而追求判断力:三个小节读完,你对 FastAPI 的认知应当从"一个流行的框架"变成"一套有明确适用边界的工程决策"。
一句金句:Flask 把自由给了你,Django 把整套方案给了你,FastAPI 把类型系统变成了你的接口契约。
这张全景图值得在读本章每一节时回头看一眼:1.1 讲的是中间三个方块(签名解析、数据验证、路由分发)如何协作,以及下面三个支撑方块各自的历史来路;1.2 把这张图与 Flask、Django、Express 的对应结构并排比较;1.3 则是让整条链路在你自己的机器上跑起来的第一步。读完本章你应该能不看图复述出:一个请求从进入进程到返回响应,中间经历了哪几层、每层负责把什么样的错误拦下来。
讲清 FastAPI 的定义、三层底座的分工,以及"代码即契约"的开发范式怎么形成。用 Flask 实现同一段接口的代码量对照,让"声明式"三个字落到实处。这一节还会展开 422 错误响应的结构——很多读者是在第一次看到那个带位置与原始值回显的错误 JSON 时,才真正理解"验证是框架行为而不是业务代码"。
五个维度的正面对比:路由与参数处理、数据校验、自动文档、异步支持、生态与学习曲线。结论不是"谁最强",而是"什么约束下选谁"。本节额外补两块选型材料:从 Flask 迁移的真实成本账(改边界层不动业务层、隐性宽容消失、同步依赖的过渡策略),以及社区生态的实况陈述——存量资料与新场景资料的分布是不均匀的,知道去哪里找答案也是选型的一部分。
虚拟环境三种工具(venv、virtualenv、conda)的选择,pip 与 uv 等新一代安装器的差异,uvicorn 热重载开发循环的建立。附 Windows 与 macOS 的命令对照、两个高频卡点的解法,以及一套三接口的环境自检方法——装完环境先跑固定检查集,再进入业务开发。
三节构成"认识 → 判断 → 行动"的链条:
1.1 FastAPI 是什么(坐标系) │ ▼ 1.2 和其它框架比怎么样(决策依据) │ ▼ 1.3 搭好环境准备动手(落地前提)
1.1 给出事实层,1.2 在事实之上做价值判断,1.3 把判断转化为可运行的开发环境。后续第 2 章的请求建模,正是建立在本章搭好的环境之上。
本章的对比不是一次性展示,而是给全册埋下五条会在后续章节反复出现的线索,读者不妨先记住它们的名字:
type=int 回落默认值对照 FastAPI 的 422,这条线在第 2 章的校验器与第 4 章的错误处理中继续深化。