创作者: Yardon | GitHub: github.com/YardonYan | 版本: v1.0
Python Web 框架简史
2010: Flask 诞生(极简微框架)
2011: Django 1.3(全栈重型框架)
2017: aiohttp(异步 HTTP)
2018: FastAPI 诞生(Sebastián Ramírez)
2020: FastAPI 被微软、Netflix、Uber 采用
2026: FastAPI 成为 Python API 开发的首选
FastAPI 在短短几年内就超越了 Flask 和 Django REST Framework,成为 GitHub 上 Star 数最高的 Python API 框架。这不是偶然------它抓住了两个关键趋势:异步编程 和类型安全。
FastAPI 的核心优势
快
FastAPI 基于 Starlette(HTTP 层)和 Pydantic(数据验证层)构建。实测性能接近 Node.js,是 Flask 的 5-10 倍。对于 IO 密集型 API(数据库查询、外部 API 调用),异步支持让它能同时处理成百上千个请求。
自动文档
写 API 最烦的是什么?文档。FastAPI 自动生成交互式 Swagger UI 和 ReDoc------你写好代码,文档就有了。
类型驱动
python
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
email: str
# 不用写一行验证代码,Pydantic 自动处理:
# - name 必须是字符串,不给就报错
# - email 格式不对也报错
把 Python 的类型提示想象成超市购物车上的扫描枪------你放进去每件商品(数据),扫描枪自动检查条形码(类型),不对就滴滴报警。
第一个 FastAPI 应用
python
from fastapi import FastAPI
app = FastAPI(title="我的第一个 API", version="1.0")
@app.get("/")
def root():
return {"message": "Hello, FastAPI!"}
@app.get("/users/{user_id}")
def get_user(user_id: int):
return {"user_id": user_id, "name": f"用户 {user_id}"}
bash
pip install fastapi uvicorn
uvicorn main:app --reload
打开 http://localhost:8000/docs------你已经有了一个完整的交互式 API 文档!
类型提示:FastAPI 的引擎
FastAPI 的智能来自 Python 类型提示:
python
from typing import Optional
from pydantic import BaseModel
class Item(BaseModel):
name: str # 必填
price: float # 必填,自动验证数字
description: Optional[str] = None # 可选
tags: list[str] = [] # 列表,默认空
类型提示在这里不是"装饰品"------它是 FastAPI 理解你数据结构的唯一方式。FastAPI 用它来生成 JSON Schema、验证输入、转换类型、生成文档。
自动生成的 API 文档
/docs → Swagger UI(可交互测试)
/redoc → ReDoc(只读文档)
/openapi.json → OpenAPI 规范(机器可读)
这意味着你可以用这个 JSON Schema 自动生成前端 TypeScript 类型定义、客户端 SDK 甚至自动测试脚本。
与 Flask 的详细对比
| 特性 | FastAPI | Flask |
|---|---|---|
| 异步支持 | ✅ 原生 async/await | ❌ 需要扩展 |
| 自动文档 | ✅ Swagger + ReDoc | 需手动集成 |
| 数据验证 | ✅ Pydantic 内置 | 需 flask-marshmallow |
| 性能 | 5-10x Flask | 基准 |
| 学习曲线 | 需要理解类型提示 | 极低,几分钟上手 |
| 生态 | 快速增长 | 成熟,插件丰富 |
FastAPI 弱项:模板渲染(它本来就不是为此设计的)、ORM 没有官方推荐、生态相对较新。
本章小结
FastAPI 用 Python 类型提示实现了运行时验证、编辑时提示、自动文档三合一。下一章我们深入路由与数据模型------构建真正的 RESTful API。
📌 创作者: Yardon | 🏠 个人网站: GlimmerAI.top
📖 本章是「FastAPI 全栈后端 」系列的第 1 章。下一章:路由与数据模型
🌟 欢迎大家来观看!