Python支柱:六个Python Web框架比较

cubicweb,django,金字塔,web.py,web2py和zope 2为python-savvy web应用程序开发人员提供强大和多样化的选择

虽然Python并不像PHP.作为一种语言Web应用程序尽管如此,Python在这方面还是有很多值得推荐的地方。与PHP一样,它是一种动态的解释性语言,因此鼓励迭代的、探索性的开发。编程纯粹主义者可能会指出这样一个事实,即面向对象是从Python一开始就被设计到它里面的,而不是在它生命的后期被改造成这种语言。

除了语言设计考虑之外,Python标准库中体现的能力令人印象深刻。Python甚至使用自己的Web服务器安装。此外,Python拥有丰富的免费数据库库,众多免费的网页模板系统,甚至是与您喜爱的Web服务器接口的库,都准备下载并应用于您的下一个Web应用程序项目。

[也在InfoWorld:“InfoWorld评论:九个精细Python开发工具| Neil McAllister透露最危险的编程错误.|获取软件开发新闻和见解InfoWorld的开发商世界时事通讯.]

当然,你不需要做所有的工作。这些能力和不同的Python的Web框架的工程师已经为您完成了这一切。

在下面的页面中,我们将回顾Python Web开发人员使用的6个Web应用程序框架。这些绝不是唯一可用的Python Web框架,但代表了广泛的可能性。作为Python开发人员,无论您的需求或专业是什么,这些框架都将是一个很好的选择。

它们包括Zope 2.,以任何语言的最长建立的Web服务器框架之一的自豪的后代;web.py.,一个低抽象框架,只提供Web开发的要点;web2py.,一个更高级别的框架,提供自己的基于Web的集成开发环境;金字塔,来自生产流行幽门框架的集团灵活的新产品;受欢迎和高度重视django框架;和CubicWeb.,您不能仅构建Web应用程序但语义Web应用程序。

Python Web框架:轻,沉重,介于两者之间Zope 2.是Zope的后代,Zope是所有Python Web应用程序工具的祖辈,也是Python家族树中的一个重要分支。Zope 2的祖先可以追溯到20世纪90年代中期,Zope的持续流行证明了它的稳固性。因此,选择Zope 2的一个巨大优势是,您可以调用15年的代码开发和文档。

Zope 2的“对象发布”系统非常适合面向对象的开发思维,并在一定程度上减轻了您必须攀爬的学习曲线,如果您选择的框架将您的应用程序暴露于Web开发的更多痛苦方面。Zope 2本身确实呈现了一个令人生畏的学习曲线——但您至少会享受15年血统带来的稳定性。

web2py.框架是抽象天堂。数据库隐藏在数据库抽象层(DAL)后面。Web2py的渲染系统将尝试查找视图 - 根据上下文,取决于HTML,XML,JSON或帧支持的任何半个协议中的任何对象。Web2Py的模板系统智能地由计算机科学教授制作,实际上允许您使用Python作为HTML-eMbeddable脚本语言。落在Zope 2的全包世界和金字塔的极简主义之间,Web2Py可能是Python-Savvy开发人员进入基于框架的Web应用程序开发世界的最佳框架。

哲学的web.py.- 一个简单的框架 - 不是抽象与网络交互的细节,而是让这种交互更容易。因此,您将发现自己直接编写HTTP获取功能处理程序。同样,Web.py数据库系统不抽象SQL;它而不是隐藏您正在查询数据库的事实,而不是隐藏使用不同数据库的详细信息。Web.py确实定义了模板语言 - 类似Web2py的模板语言 - 允许您在网页中嵌入任意Python代码。Web.py是理想的,如果您已经熟悉构建Web应用程序(也许您曾经写过基于CGI的应用程序)。您将使用Web.py快速开始,但您必须依靠自己的智慧超越简单的Web应用程序。

金字塔也是极简主义的Web框架,与其说是它的功能,不如说是它的理念。它没有对您应该使用的后端数据库进行断言,也没有将特定的模板系统强加给开发人员。(目前,Pyramid支持两种选择,尽管Pyramid自己试图保持不可知的选择。)如果说金字塔有什么缺点的话,那就是它的文档描述框架时使用的古怪术语。此外,它放任自由的态度可能会让你想知道如何继续完成一项特定的任务,以及当你设法完成这项任务时,你的解决方案是否是最好的。例如,有两种独立的方法可以确定应用程序将如何处理给定的URL:众所周知的URL映射机制和称为“遍历”的机制(您需要阅读文档来了解它)。所以,在《金字塔》中,你需要以将自己变成探索者为代价来获得灵活性。

django是一个成熟的、备受推崇的Web框架,它假定您非常了解Python。它的库提供了加速Web应用程序开发的必备功能:一个对象关系映射器,这样你就不必编写自己的RDBMS接口代码;一个模板系统,这样你就不必费劲地将Web页面上的活动Python内容与静态HTML内容结合起来;一个管理界面,使您可以轻松访问站点的后端数据(以及轻松管理网站用户和权限),等等。你应该花点时间来学习Django的API,但是你花在Django上的时间是值得的。这是一个丰富的环境,有很多值得推荐的地方。

CubicWeb.它不仅是一个Web开发框架,而且是一个语义Web开发框架。当您发现CubicWeb应用程序与数据库的交互是通过RQL(关系查询语言)来执行时,这种区别就变得明显了,RQL是一种类似于W3C的SPARQL RDF查询语言。CubicWeb的库将RQL查询转换为SQL、XML、LDAP或任何适合被访问数据存储的协议。CubicWeb可能是这篇综述中最难掌握的框架。困难不仅在于你必须学习一些行话,还在于构建一个CubicWeb应用程序需要将多个模块(称为立方体)捆绑到最终的结构中——这对新手来说是一个陌生的过程。然而,一旦你掌握了窍门,CubicWeb确实允许快速开发。一个基本的模型模式就足以让应用程序启动,而CubicWeb的敏捷特性可以让应用程序以迭代的方式发展。

Python web框架:min或max?如果您更喜欢将您与Web之间最低限度的框架,那么web.py.将是您最好的选择。另一方面,如果你喜欢向导指引你前进的道路,那么你可能会更喜欢web2py.CubicWeb.如果您的数据来自不同的来源,这是一个很好的选择。如果您的网站的结构是数据驱动的,那么看看金字塔Zope 2..此外,Zope 2.django是扎实的全面选择,两者都在验证时间。

但这些只是一般性建议。并非如此特定的Python Web框架对他人有重大缺点的情况。像往常一样,选择是非常主观的。您将找到每个产品的狂欢,每个Zealot都能够提出理性原因,为什么他们所选择的框架优越。

当然,目前的讨论只是概述。对于更精细的详细信息,请按照下表中的链接,并进入个人评论。

,

,

本文, ”Python的支柱:六个Python Web框架的比较,“最初发表在infoworld.com..跟踪最新的发展应用程序开发Python在InfoWorld.com上。有关商业技术新闻的最新发展,请跟随在Twitter上InfoWorld.com

阅读更多关于应用程序开发的信息在InfoWorld的应用程序开发频道中。

这个故事,“Python支柱:六个Python Web框架比较”最初发布infoworld.

加入网络世界社区足球竞猜app软件脸谱网linkedin.对自己最关心的话题发表评论。

版权所有©2011.足球竞彩网下载

IT薪水调查:结果是