目录
用 Python FastAPI 构建高性能 REST API:从零到一的完整指南
作者:文文
什么是 FastAPI?
FastAPI 是一个现代的、快速的(性能媲美 Node.js 和 Go)Python Web 框架,用于构建 API。它基于标准的 Python 类型提示,提供自动文档生成、数据验证、依赖注入等强大功能。
核心特性
- ⚡ 性能超强:在 Python 框架中性能最高之一
- 📚 自动 API 文档:自动生成 Swagger UI 和 ReDoc
- ✓ 数据验证:基于 Pydantic 的自动数据验证
- 🔐 安全认证:内置 OAuth2、JWT 等认证支持
- 🚀 异步支持:原生支持 async/await
快速开始
1. 安装
pip install fastapi uvicorn
2. 创建简单的 API
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
@app.get("/")
async def read_root():
return {"message": "Hello, World!"}
@app.post("/items/")
async def create_item(item: Item):
return {"item": item, "status": "created"}
3. 运行服务器
uvicorn main:app --reload
访问 http://localhost:8000/docs 查看自动生成的 API 文档。
核心概念
路径参数和查询参数
@app.get("/users/{user_id}")
async def get_user(user_id: int, skip: int = 0, limit: int = 10):
return {"user_id": user_id, "skip": skip, "limit": limit}
请求体验证
from typing import Optional
class User(BaseModel):
username: str
email: str
age: Optional[int] = None
@app.post("/users/")
async def create_user(user: User):
# FastAPI 自动验证数据类型
return {"created": user}
数据库集成(SQLAlchemy)
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
DATABASE_URL = "sqlite:///./test.db"
engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
@app.post("/users/")
async def create_user(user: User, db = Depends(get_db)):
db_user = UserModel(**user.dict())
db.add(db_user)
db.commit()
db.refresh(db_user)
return db_user
部署到生产环境
使用 Gunicorn + Uvicorn
pip install gunicorn
gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
Docker 部署
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]
性能优化建议
- 使用异步数据库驱动:如
databases或asyncpg - 缓存频繁访问的数据:使用 Redis
- 使用 CDN 提供静态资源
- 监控和日志:集成 Prometheus、ELK 等
- 限流和速率限制:防止 API 滥用
总结
FastAPI 结合了现代 Python 的最佳实践,让你能快速构建高性能、易维护的 API。无论是小项目还是大规模应用,FastAPI 都能满足需求。
文文,2026 年 3 月 16 日
