Python · 03 框架与生态
语言快,不代表框架随便选。只谈 我会用哪个、为什么。
1. FastAPI(默认首选)
- 写 AI / 工具类 HTTP 服务最常用
- 类型注解 → 自动校验与 OpenAPI 文档,和「对外契约」很搭
- 原生 async,适合等模型、等下游
适合: 内部 API、模型代理、给 Java 调用的胶水层、异步任务触发器。
注意:
- 别在 async 路由里跑阻塞代码
- 重任务:接口只投递任务,真正生成走队列/后台 worker
- 鉴权:内部服务可用 API Key / mTLS;对公网要认真做
2. Flask
- 轻、灵活、历史包袱项目多
- 适合非常小的脚本服务或遗留维护
判断: 新项目我更愿意直接 FastAPI;维护老 Flask 再学够用即可。
3. Django
- 「电池全」:Admin、ORM、用户体系齐全
- 适合要快速出带后台的完整站点
判断: 我的主业务已在 Java;Django 不是默认选项。只有「独立小站 + 强 Admin」才考虑。
4. 周边生态(按需)
| 类别 | 常见选择 | 用法 |
|---|---|---|
| HTTP 客户端 | httpx(同步/异步)、requests | 调模型与内部 API |
| 校验 / 设置 | Pydantic v2、pydantic-settings | 配置与 DTO |
| 任务队列 | Celery / RQ / 自研表状态 | 有多 worker 需求再上 Celery |
| AI 编排 | 官方 SDK 优先;LangChain 等按需 | 先跑通官方,再引入重框架 |
| 数据 | pandas(分析时) | 不要在线 API 路径里无界吃内存 |
| 包管理 | uv / poetry / pip+venv | 锁版本,可复现 |
AI 相关特别提醒
- 框架会过时;超时、重试、限流、成本与日志 不会过时——自己管住
- Prompt 与模型参数要可配置、可版本,别写死在代码魔法字符串满天飞
- 多模型适配:统一「请求/响应/错误」层,类似 Java 侧任务编排思想
5. 选择表
| 场景 | 选择 |
|---|---|
| AI / 自动化 API | FastAPI |
| 几行脚本 + 临时 HTTP | Flask 或甚至不写框架 |
| 带后台的独立小站 | Django(少用) |
| 只跑批处理 | 脚本 + cron / 系统定时;不必硬上 Web |
下一篇:04 工程实践