小编典典

何时使用 Tornado,何时使用 Twisted / Cyclone / GEvent / 其他

all

这些框架/库中的哪一个是构建现代多用户 Web 应用程序的最佳选择?我很想拥有一个异步网络服务器,它可以让我轻松扩展。什么解决方案将提供 最佳性能
/ 可扩展性 / 最有用的框架 (在易于使用和易于开发方面)?

如果它能提供良好的 功能 (websockets、rpc、流媒体等),那就太好了。

每种解决方案的优缺点是什么?


阅读 67

收藏
2022-08-02

共1个答案

小编典典

Django 是一个高级 Python Web
框架,它鼓励快速开发和简洁、实用的设计”
。如果您正在构建类似于电子商务网站的东西,那么您可能应该使用
Django。它会让你的工作快速完成。您不必担心太多的技术选择。它提供了从模板引擎到 ORM
所需的一切。对于您构建应用程序的方式,它会有点固执己见,如果您问我,这很好。它拥有所有其他库中最强大的社区,这意味着可以轻松获得帮助。

Flask 是基于 Werkzeug、Jinja 2 和善意的 Python
微框架”
。当心 - “微框架”可能会产生误导。这并不意味着 Flask 是一个半生不熟的库。这意味着烧瓶的核心非常非常简单。与 Django
不同,它不会为您做出任何技术决策。您可以自由选择任何您喜欢的模板引擎或 ORM。尽管它默认带有 Jinja
模板引擎,但您始终可以自由选择我们自己的模板引擎。据我所知,Flask 可用于编写 API 端点(RESTful 服务)。

Twisted 是一个用 python
编写的事件驱动的网络引擎”
。这是一个高性能的引擎。其速度的主要原因是所谓的延迟。Twisted 建立在 deferred
之上。对于那些不了解延迟的人来说,它是通过异步架构实现的机制。Twisted 非常快。但不适合编写常规的
webapps。如果你想做一些底层网络的东西,twisted 是你的朋友。

Tornado 是一个 Python web
框架和异步网络库,最初在 FriendFeed 开发。通过使用非阻塞网络 I/O,Tornado
可以扩展到数万个打开的连接,使其成为长轮询、WebSockets 和其他应用程序的理想选择需要与每个用户建立长期连接”
。Tornado 位于 Django
和 Flask 之间。如果你想用 Django 或 Flask 写东西,但如果你需要更好的性能,你可以选择 Tornado。如果架构正确,它可以很好地处理
C10k 问题。

Cyclone 是 Python 的 Web 服务器框架,将 Tornado API 实现为
Twisted 协议”
。现在,如果您想要一些几乎与 Twisted 一样高性能但易于编写传统 web
应用程序的东西怎么办?向旋风问好。我更喜欢旋风而不是龙卷风。它有一个与 Tornado 非常相似的 API。事实上,这是 Tornado
的一个分支。但问题是它的社区相对较小。Alexandre Fiori 是回购协议的唯一主要提交者。

Pyramid
是一个通用的、开源的 Python Web 应用程序开发框架。它的主要目标是让 Python 开发人员更容易创建 Web 应用程序。” _我还没有真正使用过
Pyramid,但我浏览了文档。据我了解,Pyramid 与 _Flask
非常相似,我认为您可以在 Flask 看起来合适的任何地方使用
Pyramid,反之亦然。

编辑 :欢迎请求审查任何其他框架!

资料来源:http ://dhilipsiva.com/2013/05/19/python-libraries-django-twisted-
tornado-flask-cyclone-and-
pyramid.html

2022-08-02