`
willzh
  • 浏览: 296417 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

TurboGears 和 Django 的比较

阅读更多
TurboGears 和 Django 的比较

Django 和 TurboGears 都是 MVC 风格的框架,开发人员可以利用这些技术使用 Python 语言快速开发 Web 站点。为了选择最适合您的需求的技术,请考虑以下区别:

    * 背景:

      这两个项目与 Ruby on Rails 一样,都是从现有的应用程序中提取出来发布到开源社区中的。Django 的历史比较长,来源于一个每天服务于数百万次页面查看请求的在线报纸服务。TurboGears 是从一个胖客户机 —— RSS News Reader 应用程序,目前仍在开发中 —— 中提取出来的。TurboGears 的社区驱动力比 Django 更好,因为它是在现有开源组件上建立起来的。

      这两个项目之间背景的差异导致了不同的项目优先级。Django 项目来源于迅速变化的在线出版业,它重点关注的是一个可以快速构建并修改基于内容的应用程序的框架。TurboGears 项目的基础是消费产品,重点关注的是胖客户机应用程序和可插入体系架构。
    * URLs:

      TurboGears 的请求分发机制通过控制器类和方法名进行路由。在添加新控制器类或方法之后,它们就自动变为可用的了。如果我们需要修改执行给定控制器的路径,就需要对代码结构重新进行配置。反之,Django 使用了一个单独的基于正则表达式的配置文件将 URL 映射为底层代码,这样就降低了 URL 路径结构与实际实现之间的耦合程度。

      TurboGears 系统的设置比 Django 更加快捷,因为它只需要一个 expose 操作让新页面变成可用即可。然而,Django 配置系统可以进行最大限度的控制和灵活性。在发生重大变化之后,Django URL 可以简单地重新映射到应用程序上。这个帮助防止由于旧书签或缓存搜索引擎结果引起的 “链接失效” 的情况。“链接失效” 会对 Django 设计用来创建的基于内容的 Web 站点的通信级和可用性造成很大的影响。
    * 代码重用:

      TurboGears 团队将他们的项目称为大框架,这样清晰地表达了 TG 是一个由现有的很多组件构成的项目这一思想。TurboGears 团队选择并集成了最好的开源代码,而不是从头重新开始编写。TurboGears 框架的另一个优势是这是一个由很多社区构成的大项目。TG 现在功能已经非常强大,正在强力促进大家对构成 TurboGears 核心组件的兴趣和参与。这样可以起到水涨船高的效果。

      另外一方面,Django 是在 2003 年创建的,当时 Python 组件的状态还不像现在一样稳定。Django Web 栈是从头开始创建的,最终的结果是获得了一个稳定的框架,这个框架已经被用来创建了多个每天处理数百万点击率的 Web 站点。然而,有些人评论说 Django 项目可能会由于缺乏代码的重用而遭遇 NIH(Not Invented Here)问题。Django 团队的立场是在 Python 中从头创建一个框架所需要的工作不会比将现有的组件拼装在一起更困难,这样最终可以生成一个更统一的框架。
    * JavaScript:

      TurboGears 在自己的框架中首先提供了 MochiKit,这是一个 JavaScript 库。这个团队还创建了一个部件库,它可以充分利用 JavaScript 创建丰富的表单元素。这显示了胖客户机(Ajax)开发在 TurboGears 世界中是多么重要。Django 团队没有选择使用一个 JavaScript 库来默认地包含自己的框架,但是他们已经对这种可能性展开了讨论。这两个项目都不会限制我们使用任何 JavaScript 库。
    * 管理工具:

      这两个项目都有管理接口。Django 管理工具的目标用户是那些需要良好数据入口工具的终端用户,这样每次向应用程序中添加新功能时就不需要对工具进行定制了。另一方面,TurboGears 管理工具重点关注的是开发人员的需要:它为开发人员提供了一组设计工具,以及一个基本的数据库查看器和编辑器。
    * 许可证:

      由于 Django 是从头开始创建的,因此整个项目都使用的是开源许可证(BSD 许可证)。TurboGears 是由多个项目构成的,使用了多个许可证。SQLObject(ORM 工具)是使用 LGPL(Lesser General Public License)保护的,这说明对 SQLObject 进行的任何直接修改都需要贡献回这个项目。这个许可证并不 要求使用它的应用程序也开放源代码。不过有些公司会禁止使用受 LGPL 许可证保护的软件。在这种情况下,我们可以考虑使用 SQLAlchemy,它是 TG 社区大力支持的另外一个 ORM 工具。
    * 实际例子:

      请参见 参考资料 部分给出的已知的 Django 和 TurboGears 驱动的站点的列表。这些实际的应用程序展示了我们可以使用每个工具实现什么功能。

参考资料
学习

    * 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。

    * “Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点”(developerWorks,2006 年 6 月),Ian 撰写的这个两部分系列文章的第 1 部分,对 Django 进行了介绍。

    * Python 教程 可以帮您入门 Python。

    * SQLObject 主页 提供了有关默认 TurboGears 对象关系映射(ORM)工具的更多信息。

    * 请阅读 Ajax: A New Approach to Web Applications,这篇文章发起了 Ajax 狂潮。

    * 在 developerWorks 上 学习更多有关 Ajax 的知识。

    * Building and Distributing Packages with setuptools 展示了如何安装 setuptools 和 easy_install,这是 Python Eggs 包的一部分。

    * Trac 列出了 使用 TurboGears 的 Web 站点。

    * Django 项目列出了 使用 Django 的 Web 站点。

    * 在 developerWorks Linux 专区 可以找到为 Linux 开发人员准备的更多资源。

    * 随时关注 developerWorks 技术事件和网络广播。


获得产品和技术

    * Python.org 是 Python 编程语言的主页,在这里我们可以找到下载 Python 解释器和标准库的链接。

    * TurboGears.com 是 TurboGears 框架的主页。

    * TurboGears preview 站点 是 0.9 alpha 发行版的主页。

    * Kid 是 TurboGears 使用的一个基于 XML 的模板语言。

    * CherryPy 是一个庞大的面向对象的 Web 框架,它提供了 TurboGears 框架的基础。

    * MochiKit 是一个经过良好测试的 JavaScript 库,它提供了 DOM 和 Ajax 的支持。

    * JSON (JavaScript Object Notation) 是 MochiKit 和 TurboGears 在异步消息传递中使用的一种轻量级数据交换格式。

    * 订购免费的 SEK for Linux,这有两张 DVD,包括最新的 IBM for Linux 的试用软件,包括 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere®。

    * 在您的下一个开发项目中采用 IBM 试用软件,这可以从 developerWorks 上直接下载。


讨论

    * 通过参与 developerWorks blogs 加入 developerWorks 社区。



关于作者

作者照片:Ian Maurer


Ian Maurer 是 Brulant, Inc. 的一名资深顾问,他擅长使用开源软件和 IBM WebSphere 技术为各个行业开发集成的电子商务解决方案,其中包括消费品和零售行业。Ian 居住在东北部的俄亥俄州,
分享到:
评论

相关推荐

    Python Frameworks Web 2.0 Programming with Django and TurboGears

    Python Frameworks Web 2.0 Programming with Django and TurboGears Dana Moore Raymond Budd William Wright

    Professional Python Frameworks - Web 2.0 Programming with Django and TurboGears

    Leveraging the Power of TurboGears 11 Leveraging the Power of Django 12 Leveraging the Power of Python 12 Comparing the Frameworks 13 The Historical Perspective 13 Controller Invocation 14 ...

    Professional.Python.Frameworks.Web.2.0.Programming.with.Django.and.TurboGears

    Professional.Python.Frameworks.Web.2.0.Programming.with.Django.and.TurboGears

    Python Web框架--使用Django和Python开发Web站点

    第二篇文章将向您介绍 TurboGears 框架。 要使用并理解本文中提供的代码,则需要安装 Python,并了解在初学者的水平上如何使用 Python。要查看是否安装了 Python 以及 Python 的版本号,可以输入 python -V。Django...

    Web应用安全:Web编程语言.pptx

    最受欢迎的是 Django、Pyramid、Bottle、Flask、CherryPy、WebApp2和TurboGears。 Django 比其他 Python 框架使用得更为频繁,因为它具有让我们在构建 Web 应用程序更快、代码更少的工具包。这些工具包可以帮助开发...

    brownfield_django:将旧的TurboGears棕场网站转换为Django

    brownfield_django

    Grails1.1中文文档(CHM)

    因此我们要以一种新的思维方式来重新思考Web开发,Rails、Django和TurboGears这样的动态框架给我们铺平了道路。Grails建立在这些概念之上,它极大地降低了在Java平台上建立Web应用的复杂性。与那些框架不同的是,...

    安装Python的web.py框架并从hello world开始编程

    最近有一个小的web项目,想用喜爱都python,但是想到之前接触过都django... TurboGears lets you write web apps in TurboGears. Web.py lets you write web apps in Python.” — Adam Atlas 最近切换了Ubuntu替换了Win7

    GRails 中文帮助文档(参考手册)和安装开发介绍帮助

    像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...

    Gunicorn:用于 UNIX、快速客户端和Hibernate应用程序的 WSGI HTTP 服务器-开源

    您可以使用命令运行 Gunicorn,也可以与流行的框架(如 Django、Pyramid 或 TurboGears)集成。 要在生产中部署 Gunicorn,请参阅部署 Gunicorn。 安装 Gunicorn 后,您将可以访问命令行脚本 gunicorn。 Gunicorn ...

    grails-docs-2.0.3.zip

    像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...

    Grails 教程

    像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...

    java中的Grails开源框架 - 使用指南(chm)

    像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...

    grails-开源框架使用指南

    像Rails,Django和TurboGears这样的动态框架在Web开发领域开辟了一条新的道路,Grails基于这些概念之上,采用动态方法减小了Java平台上进行Web开发的复杂度,不过与那些框架不同的是,Grails是构建在Spring和...

    Grails1.1中文文档

    因此我们要以一种新的思维方式来重新思考Web开发,Rails、Django和TurboGears这样的动态框架给我们铺平了道路。Grails建立在这些概念之上,它极大地降低了在Java平台上建立Web应用的复杂性。与那些框架不同的是,...

    contact_importer:一个Python库,用于从Gmail,Yahoo和Live帐户导入联系人

    您可以查看Django的实现图书馆的在和TurboGears的实施 。 执照 MIT许可证(MIT) 版权所有(c)2013 Mengu Kagan 特此免费授予获得此软件和相关文档文件(“软件”)副本的任何人无限制地处理软件的权利,包括但不...

    Python能做什么

    Python 作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。...不仅如此,一些 Web 框架(如 Django、TurboGears、web2py 等等)可以让程序员轻松地开发和管理复杂的Web程序。 举个最直观的例子

    python能做哪方面的工作

    Python作为一种功能强大的编程语言,因其简单易学而受到很多开发者的青睐。那么,Python 的应用领域有哪些呢?...不仅如此,一些 Web 框架(如 Django、TurboGears、web2py 等等)可以让程序员轻松地开发和管理

    python主要用于哪些方向

    一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。 操作系统管理、服务器运维的自动化脚本 在很多操作系统里,Python是标准的系统组件。大多数Linux发行版以及...

    推荐值得学习的12款python-web开发框架

    最近JETBRAINS发布了目前最受欢迎的python-web开发框架,可以看到最受欢迎的还是Django和Flask,那么本文就对上榜的12个框架进行分类整理,一起来看看吧! 全栈框架 Django Pyramid TurboGears Web2py 微型框架...

Global site tag (gtag.js) - Google Analytics