文章列表
7 分钟阅读

Python Web 框架有哪些,怎么选


系列:Python Web 框架

第 6 / 11 篇

  1. FastAPI 安装与使用指南
  2. FastAPI 进阶使用指南
  3. Django 安装与使用指南
  4. Django 进阶使用指南
  5. Django 与 FastAPI 对比:如何选择合适的 Python Web 框架
  6. Python Web 框架有哪些,怎么选
  7. Flask 安装与使用指南
  8. Django REST Framework 入门:把 Django 做成 API
  9. FastAPI 项目实战:用户登录与 JWT 鉴权
  10. Python Web 项目部署指南:Gunicorn、Uvicorn、Nginx 和 Docker
  11. Python Web 项目结构怎么设计

一说 Python Web 框架,你可能最先想到 Django 和 FastAPI——本专题前面几篇讲的也是它们俩。但这俩只是冰山上露出水面的部分。Python 的 Web 框架生态其实挺宽的,不同框架被设计出来解决不同的难题,了解它们之间的边界,用的时候心里有数。

我写这篇文章的出发点很简单:把市面上还算活跃的 Python Web 框架捋一遍——不只是列名字,而是说清楚每个框架到底适合干什么、不适合干什么,以及我个人的判断。文中的数据来自 JetBrains 2025 年开发者调查,以及各个框架在 GitHub 和 PyPI 上的公开数据。

第一梯队:你可以闭眼选的三个

这三个框架加一起占了 Python Web 开发八成以上的份额。随便打开一个 Python 后端的招聘 JD,十有八九是在这三家里打转。

Django — 全栈,开箱即用

Django 从 2005 年活到现在,贡献了一个判断 Web 框架成熟度的经典指标:它有没有自带 admin 后台。Django 的 admin 能省掉内部管理系统大半的 CRUD 工作。

它的设计哲学是”什么东西都给你准备好”——ORM、模板引擎、用户认证、表单校验、CSRF 防护、缓存、信号、中间件,打开项目就能直接写业务。Django 6.0(2025 年底发布)补上了异步 ORM 和内置后台任务框架,跟上了异步的趋势,但核心骨架还是同步的。

Instagram 用它撑了 20 亿用户,Disqus 用它处理每秒四万五的请求——框架本身不是瓶颈。

适合:内容平台、电商后台、CMS、企业内部系统。不适合:纯 API 服务(用 DRF 也可以但路径更长)、对异步性能有极端要求的场景。

本专题有 Django 安装与使用指南Django 进阶使用指南

FastAPI — API 优先,开发快

FastAPI 是 2018 年冒出来的,到 2026 年 GitHub Star 数已经突破九万,超过 Django。JetBrains 调查显示它的使用率从 2023 年的 29% 窜到 2025 年的 38%,是 Python 生态里增速最快的框架。

它的核心卖点就三个:类型提示自动生成 API 文档、Pydantic 做数据校验、原生异步。写一个接口同时完成了路由、校验、文档三件事,不需要额外插件。

Netflix、Uber、Microsoft 都在生产环境跑它,AI/ML 领域 42% 的工程师用它做模型推理服务。

适合:前后端分离的 REST API、微服务、AI 模型推理接口、WebSocket 实时服务。不适合:需要后台管理界面的内部系统、服务端渲染的多页面应用。

本专题有 FastAPI 安装与使用指南FastAPI 进阶使用指南

Flask — 轻量,什么都得自己选

Flask 是三个框架里资格最老的”微框架”——核心代码很少,全靠社区扩展撑起来。PyPI 月下载量超过一亿次,存量极其庞大。

学习和上手确实快。一个文件几十行代码就能跑一个 Web 应用。但问题是,当你需要 ORM、表单校验、用户认证、API 文档这些东西时,得自己一个插件一个插件地装。Flask 本身没有异步原生的 I/O 能力,协程跑在独立线程上,跟真正的异步不是一回事。

它特别适合小项目、原型验证和内部工具——很多东西不需要上 Django 或者 FastAPI 那种完整框架。但如果你一开始就知道项目会膨胀,Flask 未必是最优解。

适合:小型 API、原型、机器学习 demo、内部工具。不适合:需要异步高并发的生产系统、团队规模大了之后容易失控的项目。

第二梯队:在特定方向上走得更远

这几个框架没进第一梯队的核心原因是社区规模——招人难、遇到冷门问题 Stack Overflow 上搜不到答案。但在技术层面上,它们在各自擅长的方向比第一梯队做得更好。

Litestar — 架构最干净的异步框架

Litestar 前身叫 Starlite,2024 年改名。Star 数六千多,社区小,但技术设计上是 FastAPI 的最强竞争者。

它的序列化基于 msgspec——比 Pydantic 快两到三倍。路由用的是 Controller 类而非函数,对大项目的组织更友好。内置了依赖注入、CSRF 保护、会话管理,不需要额外装插件。TechEmpower 基准测试中跑出 120 万 req/s,而 FastAPI 是 72 万。

但问题也很明显:社区太小,很难招到用过的人,第三方生态基本没有。选它意味着团队要承担生态风险。

适合:对架构设计有追求的小团队、性能敏感的异步 API。不适合:需要丰富第三方生态或依赖社区支持的大团队。

Sanic — 就一个字,快

Sanic 2016 年出现,比 FastAPI 还早两年。它是 Python Web 框架里最早一批做原生异步的,基于 uvloop,语法上跟 Flask 很像。

性能在 Hello World 级别能跑到 15000+ req/s,在 Python 框架里数一数二。自己带 Web 服务器,不依赖 Gunicorn。24.x 版本加了 HTTP/3 支持。

短板是它不是 ASGI 兼容的——这意味着 ASGI 生态的中间件、工具基本都用不了。也不内置数据校验,得自己处理。

适合:高流量 API 网关、IoT 数据采集、WebSocket 密集场景。不适合:需要 ASGI 中间件生态或内置校验的系统。

Tornado — WebSocket 老炮

Tornado 最初是 FriendFeed 内部开发的,后来被 Facebook 收购,在异步 Python 这块算是鼻祖级。Jupyter、IPython 的底层用的是它。

非阻塞 I/O 和 WebSocket 的支持非常成熟——单机能扛上万并发连接。但 API 风格确实老了,跟现代 async/await 语法不太搭。新项目几乎不会选它,现有 Tornado 代码库大概率在维护模式。

适合:维护老项目、WebSocket 密集的实时系统(聊天、行情推送)。不适合:新项目——FastAPI 或 Sanic 在异步这块已经做得很好了。

第三梯队:有特定价值但不推荐新项目选

Pyramid 的口号是”从小做起,逐步做大”。架构设计上确实灵活得过分——它不限定 ORM、模板引擎、路由风格,你可以一步一步往上加组件。Mozilla 和 Yelp 的部分系统在用它。但社区实在太小(Star 数不到四千),文档也散。对多数团队来说,Django 或 FastAPI 就够了。

Falcon 是个极简的 API 框架,专门为裸金属性能优化。适合在已经有完整架构的系统中嵌入几个高性能端点,不是给从头搭项目用的。

Quart 是 Flask 的异步重写版,API 跟 Flask 基本一致。如果你很熟悉 Flask 但需要异步,可以用 Quart 过渡。

到底怎么选

选框架这件事,很多时候不是因为 A 比 B 技术好,而是因为 A 刚好跟你的场景匹配。我的经验是自下往上筛:

  1. 你要做的是前后端分离的 API 还是连模板一起渲染的网站?

    • API → FastAPI、Litestar、Sanic
    • 网站(服务端渲染)→ Django、Flask
  2. 需要后台管理界面吗?

    • 需要 → Django。它的 admin 省下来的时间远超过框架本身的学习成本。
  3. 团队多大,招人好招吗?

    • 团队大 / 人员流动 → Django 或 FastAPI。看 JD 数量就知道了。
    • 小团队 / 长期稳定 → 可以考虑 Litestar 或 Sanic。
  4. 对异步和高并发有硬性要求吗?

    • 有 → FastAPI / Litestar / Sanic,别用 Flask。
    • 没有 → 随便选。
  5. 项目几年后会变成什么样?

    • 不知道 / 可能会长很大 → Django 或 FastAPI,它们的生态能兜底。
    • 很清楚就是个小工具 → Flask,杀鸡不用牛刀。

如果你看完还是不确定,用 FastAPI——它是最安全的默认选择。

一张表

框架类型性能学习曲线社区最适合
Django全栈极大CMS、后台系统、内容平台
FastAPIAPI平缓REST API、微服务、AI 推理
Flask微框架低-中极低极大小项目、原型、内部工具
LitestarAPI很高追求架构和性能的异步 API
SanicAPI很高高流量网关、IoT、实时服务
Tornado异步中-高老系统维护、WebSocket 密集
Pyramid全栈很小需要极度定制化的长周期项目

数据来源:JetBrains Developers Survey 2025、PyPI Stats、GitHub、TechEmpower 基准测试。时间节点是 2026 年 6 月。

总结

Python Web 框架的世界没有正确的选择,只有合适的匹配。

Django 赢在”什么都有”,FastAPI 赢在”API 开发体验”,Flask 赢在”足够简单”。Litestar 和 Sanic 在技术上不输甚至更强,只是生态还需要时间。Tornado 和 Pyramid 是功臣级框架,曾经的辉煌是真的,现在新项目几乎不选也是真的。

如果你刚接触 Python Web 开发,本专题前面几篇从 FastAPI 安装与使用指南Django 安装与使用指南Flask 安装与使用指南 开始,把最重要的三个框架吃透;需要在 Django 和 FastAPI 之间做项目决策时,再看 Django 与 FastAPI 对比:如何选择合适的 Python Web 框架。框架选定之后,Python Web 项目结构怎么设计 比继续比较框架更重要。