Web-frameworks-comparison
此表格比较了 Python 社区中可用的 Web 框架。我们认为一些框架可以忽略,例如 Django、Sanic、Tornado,因为它们与我们的用例(服务路由)有些不相关,但我们列出了它们以便对我们的生态系统有一个全面的了解。
您可以在相关的 etherpad 中添加您的优点和缺点 https://etherpad.opendev.org/p/eventlet-removal-web-frameworks-comparison。
关于 SGI 服务器的比较,请参见这里 https://wiki.openstack.org/wiki/SGI-servers-comparison
HTTP 库(客户端库)的比较正在这里进行 https://wiki.openstack.org/wiki/Http-libraries-comparison
| 框架 | 性能 | 易用性 | 特性 | 异步性 | 可扩展性 | 社区和生态系统 | 安全 | 可扩展性 | SQLAlchemy 支持 | 维护活跃度 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| FastAPI | 高 | 中等 | 中等 | Yes | 高 | 增长中 | 中等 | 高 | Yes | 非常活跃 | FastAPI 是现代异步 API 的绝佳选择。性能很高,非常适合可扩展性。 |
| Flask | 中等 | 高 | 低 | 否 | 高 | 庞大 | 中等 | 中等 | Yes | 非常活跃 | Flask 的简单性和庞大的生态系统使其成为小型到中型应用程序的理想选择。 |
| Pyramid | 中等 | 中等 | 中等 | 可选 | 高 | 中 | 高 | 高 | Yes | 活跃 | Pyramid 提供了从小处着手并根据需要扩展的灵活性,非常适合模块化应用程序。 |
| Bottle | 低 | 高 | 非常低 | 否 | 低 | 小型 | 低 | 低 | Yes | 适度活跃 | 最适合非常小的应用程序或微服务,缺乏开箱即用的功能。 |
| CherryPy | 中等 | 中等 | 低 | 否 | 低 | 小型 | 中等 | 中等 | Yes | 低 | CherryPy 极简且轻量级,但缺乏现代功能,例如异步支持。 |
| Routes | 中等 | 高 | 低 | 否 | 低 | 小型 | 低 | 低 | Yes | 低 | Routes 专注于 Web 应用程序的路由,提供 URL 分派,但缺乏更多综合框架中的许多其他功能。 |
| Django | 中等 | 中等 | 非常高 | 否 | 中等 | 非常庞大 | 非常高 | 高 | 否 | 非常活跃 | 功能齐全的框架,但缺乏原生异步支持。可以使用 SQLAlchemy,但 Django ORM 是默认选项。 |
| Sanic | 非常高 | 中等 | 低 | Yes | 高 | 增长中 | 低 | 高 | Yes | 活跃 | 非常适合具有异步需求的高性能应用程序,但与其他框架相比,生态系统较小。 |
| Tornado | 高 | 中等 | 中等 | Yes | 中等 | 小型 | 中等 | 高 | Yes | 中等 | Tornado 专为实时 Web 应用程序设计,并支持长时间的网络连接。 |