任何人都可以指出TG2优于Django的利弊吗?

时间:2009-03-12 23:26:35

标签: python django turbogears turbogears2

Django是我最喜欢的python web框架。我尝试过其他像pylons,web2py,nevow等人。

但我从来没有热情地看过TurboGears。

现在TG2没有测试版,我可以尝试一下。我想知道与Django相比有哪些优点和缺点。

8 个答案:

答案 0 :(得分:15)

TG2有几个我认为很重要的优点:

  • 多数据库支持
  • 分片/数据分区支持
  • 长期支持聚合,多列主键
  • 为您处理多数据库事务的事务系统
  • 适用于以上所有
  • 的管理系统
  • 开箱即用支持可重复使用的模板片段
  • 创建可重用模板标记库的简便方法
  • 使用非标准组件的更大灵活性

还有更多,但我认为知道Django比TG2有一些优势也很重要:

  • 更大,社区,更活跃的IRC频道
  • 更多可重用的应用程序组件
  • 更多开发文档

所有这一切都意味着开始使用Django比使用TG2更容易,但我个人认为你获得的额外功能和灵活性是值得的。但是你的需求可能总是不同的。

答案 1 :(得分:14)

TG2接受Pylons并更改一些默认值 - 对象分派而不是Routes,而Genshi则代替Mako。他们相信there's only one way to do it,因此应用可以依赖于任何TurboGears网站的相同API。

相似性

差异

  • Django使用自己的处理程序进行HTTP,路由,模板和持久化。 Django还拥有出色的文档和成熟的社区。

  • TurboGears默认使用最佳的库,显然是Paste,对象分派,GenshiSqlAlchemy。这种理念产生了一个更好的全方位工具集,但存在不稳定的风险 - 因为这意味着如果出现更好的库,就会失去向后兼容性。

答案 2 :(得分:5)

赞成。

  • SQLAlchemy> django ORM
  • 开箱即用的多种模板语言(genshi,mako,jinja2)
  • 更多WSGI友好
  • 对象调度>路线>正则表达式路由。您可以使用TG2获得前2个
  • 几乎所有组件都是可选的,您可以保留核心并使用任何ORM,模板,auth库等。
  • Sprox> django表格

缺点。   - 管理员更基本(没有内联对象!)   - 减少第三方应用程序   - “app”系统仍在制作中。   - 鉴于它的模块化,你需要阅读不同来源的文档(SQLAlchemy,Genshi或Mako,repoze.who,Pylons等)

答案 3 :(得分:2)

几个月前我一直在努力解决同样的问题并决定 Turbogears 2 ,我的理由很简单。 “我是python的新手,我想学习它不仅仅是针对网络项目,而是作为脚本小帮手编写的PHP的替代

我不喜欢Django,对我来说看起来像是一个“关闭平台”。 ORM,模板系统,会话等都是Django的

另一方面,Turbogears 2使用已知的开放平台并粘贴它们,就像Appfuse为Java做的那样

使用TurboGears 2,我学习了SQLAlchemy,我可以在以后用于小型python脚本,或者从python shell中解决常见任务。

主要缺点是缺乏完整的文档和错误消息。

有时你必须深入搜索才能找到简单的解决方案,学习曲线陡峭,但它需要长期支付。错误消息让我感到非常困惑(来自Java开发的超过10年)。当真正的问题是没有导入模块时,我已经失去了很多时间试图找到“ascii编码错误”。

这是我的观点,只记得我是python的新手,我对这里陈述的很多事情都错了。

答案 4 :(得分:1)

除了Nikhil在他的回答中提供的内容之外,我认为另一个小的区别是Turbogears对javascript小部件和与Mochikit的集成提供了一些支持。

而Django坚持不懈地保持javascript框架中立。

(至少对于旧版本的Turbogears来说也是如此......这可能会因TG2而改变)

编辑:我刚刚查看了TG2文档,发现确实发生了变化。 Turbogears现在使用ToscaWidgets,它可以在下面使用jQuery,ExtJS,Dojo等。这很好地使它更加框架中立,同时仍然提供了不错的javascript小部件。

如果您没有任何javascript经验,那么对于Turbogears来说,这会让我感到非常强烈。 pro 如果您正在编写大量专门的JavaScript,那么Django的专业会让我感到震惊。< / p>

答案 5 :(得分:1)

最重要的问题之一不仅是该平台提供的技术功能或平台提供的技术功能,还包括开源项目的驱动理念以及支持它的社区的性质。

我自己在这场斗争中没有狗,但我发现Mark Ramm's talk at DjangoCon 2008在这一点上非常有趣(毫无疑问,谷歌将不会结束随后的讨论)。

答案 6 :(得分:0)

因为Django使用自己的ORM,所以限制您学习该特定Web框架的ORM。我认为使用具有更流行的ORM的Web框架(如TG使用的SqlAlchemy)会增加您的就业机会。只差我2美分..

答案 7 :(得分:0)

最后我查了一下,django的数据实现非常糟糕。这是我书中的一个巨大弱点。 Django的orm不允许我使用底层数据库的强大功能。例如,我不能使用复合主键,这对良好的数据库设计很重要。它也不支持多个数据库,这在你真正需要它之前并不是什么大问题,并且发现如果不采取手动操作就无法做到这一点。最后,如果您必须以团队友好的方式更改数据库结构,则必须尝试在一组第三方迁移工具之间进行选择。

Turbogears似乎在结构上更具声音,尽最大努力整合本身非常棒的个人工具。而且因为TG更像是一个集成商,所以你可以根据自己的喜好来切换件。不喜欢SQL Alchemy?您可以使用SQLObject。不喜欢Genshi模板?你可以使用Mako甚至django's,尽管你并没有完全坚持django的默认设置。

时间tg2的缺点:

  • TG社区规模小得多,社区通常也有其优势。
  • Django有一个更好的名字。我真的很喜欢这个名字; - )
  • Django对于初级Web开发人员来说似乎更简单,使用非常酷的管理工具。
  • TG有很好的文档,但你还需要去Genshi的网站学习Genshi,SQL Alchemy的网站来了解它等等.Django有很棒的文档。

我的2美分。