`
willzh
  • 浏览: 300871 次
  • 性别: 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》是一本深入探讨Python Web开发框架的专业书籍,特别是针对Django和TurboGears两大流行的Web框架。本书由Dana Moore、Raymond Budd和William ...

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

    《专业Python框架:使用Django和TurboGears进行Web 2.0编程》一书由Dana Moore、Raymond Budd和William Wright合著,由Wiley Publishing, Inc.出版,深入探讨了如何利用Python这一强大且灵活的编程语言来构建高效、...

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

    TurboGears和Django都是Python语言中的Web应用框架,它们各自有着不同的设计哲学和优势,而这种转换过程对于开发者来说既是一个挑战,也是一个提升技术能力的好机会。 TurboGears,作为一个轻量级且功能全面的框架...

    在Eclipse中调试/运行TurboGears2

    TurboGears2是一个轻量级、可扩展的Web框架,它结合了MVC(模型-视图-控制器)设计模式和微框架的概念,提供了一个高效且灵活的开发环境。Eclipse作为流行的开源集成开发环境(IDE),为多种编程语言提供了强大的...

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

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

    Web Programming with Python (Django) ( PDFDrive.com ).pdf

    相较于其他Python Web框架(如TurboGears、Grok和Pyjamas等),Django提供了一套更为完整和易用的解决方案。Django的核心设计理念之一就是“不要重复发明轮子”,这意味着开发者可以在不牺牲灵活性的前提下,利用...

    基于Python的Web开发框架研究.pdf

    本文档主要探讨了Python的Web开发框架,包括当前流行的Django、TurboGears、Zope以及CherryPy和web.py等。 首先,Django是一个高级的Python Web框架,它鼓励快速开发和干净、实用的设计。Django的MTV(Model-...

    基于Web的Python编程环境研究.pdf

    Python Web框架:文档中提到了几个重要的Python Web框架,包括TurboGears、Zope、Django、PythonScript、CodeMirror和jquery,它们在Web开发中各有特点和优势。下面对每个框架进行简单介绍: 1. TurboGears框架:这...

    Uliweb快速易用的PythonWebFramework 精品资料.pptx

    Uliweb的诞生源于作者对多种Python Web框架的使用体验,包括PHP、Zope、CherryPy、Karrigell、Django、Web2py以及TurboGears和Pylons。通过对比这些框架,作者发现每个框架都有其独特的哲学和设计理念,这促使他创建...

    Uliweb快速易用的PythonWebFramework.pptx

    **Django和Web2py的不足** Django的APP在静态文件、配置文件和代码级别的共享方面存在限制,而Web2py的APP是运行和部署的最小单位,不利于代码级别的共享。 **方便性** Uliweb借鉴了Web2py的一些特性,如: 1. **...

    基于Python的Web技术

    * TurboGears:TurboGears 是一种基于 Python 的 Web 框架,具有高效、灵活等优点。 其他 Python Web 技术 除了 Web 框架外,Python 还有多种其他 Web 技术,例如: * Web 服务器:Python 可以用作 Web 服务器,...

    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

    浅谈五大Python Web框架

    Pyramid是一个中型框架,介于Django和Flask之间,提供了一定程度的全栈特性,同时保持了高度的灵活性。Pyramid允许开发者选择自己的ORM、模板引擎和其他工具,适合构建从小型应用到大型企业级系统的各种项目。 每种...

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

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

    (完整版)python可以用来做什么.pdf

    此外,Python也有许多用于Web开发的框架,如Django、TurboGears、Pylons、Zope和WebWare,可以快速构建功能强大的网站。 4. **组件集成**:Python可以作为胶水语言,将不同组件和系统连接在一起。它可以扩展C/C++库...

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

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

    python可以用来做什么.docx

    此外,Python社区还提供了许多用于网络编程的第三方工具和Web开发框架,如Django、TurboGears、Pylons、Zope和WebWare,用于构建高性能的网站。 4. **组件集成**: Python可以作为组件集成的语言,通过C/C++扩展,...

    (完整)python可以用来做什么.pdf

    此外,Python还广泛用于Web开发,如Django、TurboGears、Pylons、Zope和WebWare等框架,可以快速构建功能强大且高质的网站。 4. **组件集成**:Python可以作为“胶水”语言,将不同组件和系统连接在一起。它可以...

Global site tag (gtag.js) - Google Analytics