这些框架/库中的哪一个是构建现代多用户 Web 应用程序的最佳选择?我很想拥有一个异步网络服务器,它可以让我轻松扩展。什么解决方案将提供 最佳性能 / 可扩展性 / 最有用的框架 (在易于使用和易于开发方面)?
如果它能提供良好的 功能 (websockets、rpc、流媒体等),那就太好了。
每种解决方案的优缺点是什么?
“ 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