Skip to content

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 / 自动化 APIFastAPI
几行脚本 + 临时 HTTPFlask 或甚至不写框架
带后台的独立小站Django(少用)
只跑批处理脚本 + cron / 系统定时;不必硬上 Web

下一篇:04 工程实践