作者丨dhilipsiva翻译丨Ada校正丨auxten
Django
Django是一个高级的PythonWeb框架,支持快速开发,简洁、实用的设计。如果你正在建一个和电子商务网站相似的应用,那你应该选择用Django框架。它能使你快速完成工作,也不必担心太多的技术选择。它能提供从模版引擎到ORM所需的一切东西。用Django构建你的app的时候,你必须要遵循Django的方式,这点像极了RubyonRails的Rails框架。有些人会觉得这样有点不爽,但在我看来这是极好的,毕竟我坚信:“约定优于机制”。相对于所有其他的库,Django框架有最强的社区,这意味着可以轻松获得帮助。
Flask
Flask是基于Werkzeug,Jinja2的Python轻量级框架(microframework)。注意——“microframework”里的“micro”可能会产生误解。轻量级不意味着Flask是一个不成熟、不靠谱的库。它表示Flask的核心就是非常非常简单的。不像Django框架,它不会给你带来技术选择上的问题,你可以自由选择你喜欢的任何模版引擎或ORM。即使它默认配备了Jinja模板引擎,你也随时可以自由选择。在我看来,用Flask来编写API服务(RESTfulrervices)是再好不过的。
Twisted
Twisted是用Python实现的基于事件驱动的网络引擎框架。它是一个高性能的引擎,其快速的主要原因是一个被称为deferred的object,Twisted是建立在deferredobject之上。对于不了解deferredobject的人来说,deferredobject是通过异步架构实现的机制。Twisted是很快速的,但是不适合编写常规的WebApps。如果你想做一些底层网络的东西,Twisted是你的好帮手。
Tornado
Tornado是一个PythonWeb框架和异步网络库,最初是由FriendFeed开发的。Tornado采用非阻塞网络I/O模型,可以处理数以千计的网络连接,这意味着对于longpolling、WebSockets和其他需要长时间实时连接的apps来说,Tornado是一个理想的Web框架。Tornado介于Django和Flask之间。如果你想要用Django或Flask写一些东西,但你想要一个更好的性能,你应该选择用Tornado框架。配合上合理的架构,它能很好的处理C10K问题。
Cyclone
Cyclone是用Python编写的一款异步非阻塞的轻量级WebServer框架。它实现了Tornado的API,底层实现是基于TwistedProtocol的。现在,如果你想要Twisted的性能和易于编写常规的WebApps,那么请选择Cyclone。相对于Tornado框架,我更喜欢Cyclone。它有一个非常类似于Tornado的API,实际上,它是Tornado的一个fork分支。但是问题就是它拥有的社区相对较小。AlexandreFiori是主要代码贡献者。
Pyramid
Pyramid是一个通用的,开源的Pythonweb应用开发框架。其主要目标就是让Python开发人员更轻松的开发web应用程序。我没有用过Pyramid框架,但是我看过它的文档。据我了解,Pyramind和Flask很相似,我认为可以用Flask框架的地方也可以用Pyramid框架,反之亦然。