Turbogears 2和Django - 在选择替代Turbogears 1时有什么建议吗?

12

我过去几年一直在使用Turbogears 1原型制作小型网站,但它已经有点过时了。您有什么建议应该升级到Turbogears 2还是转向类似Django的其他框架?我在熟悉的TG社区之间犹豫不决,他们非常负责并且文档写得很好,与使用Django的庞大社区相比。我对内置的CMS功能和Google AppEngine支持非常感兴趣。

请问您有什么建议吗?

7个回答

13

TG2是基于Pylons构建的,Pylons拥有一个非常庞大的社区。与TG1相比,TG2更快,并且包括了一个按方法(而不仅仅是网页)缓存引擎。我认为它比Django更加友好,因为页面可以轻松地发布为HTML或JSON格式。

2011年更新:在经历了三年臃肿的框架之后,我成为了Bottle的快乐用户。http://bottlepy.org/


11

我有Django和TG1.1的经验。

在我看来,TurboGears的优点在于它的ORM:SQLAlchemy。当涉及到较为复杂的数据库操作时,我更喜欢使用TurboGears。

Django的ORM并不那么灵活和强大。

尽管如此,我更喜欢Django。如果数据库模式适合Django的ORM,我会选择Django。

根据我的经验,与TurboGears相比,使用Django更加简便。


4

我现在已经使用Django一年了,当我刚开始使用它时,我对Python或Django没有任何经验,但我发现它非常直观易用。

我使用Django创建了许多业余Google App Engine应用程序,其中最新的一个是我的网站的CMS。使用Django意味着我能够更快地编码,并且出现的错误也更少。


1

我相信你已经在网上阅读了很多TurboGears和DJango的比较。

但是,对于你对CMS和GAE的诱惑,我真的认为你应该选择DJango。请查看以下内容,并自行决定:

Django with GAE

Django for CMS


-1

Django ORM使用Active Record实现 - 大多数ORM都使用此实现。基本上,它的意思是数据库中的每一行直接映射到代码中的一个对象,反之亦然。像Django这样的ORM框架不需要预定义模式来使用代码中的属性。您只需使用它们,因为框架可以通过查看数据库模式“理解”结构。此外,您可以将记录保存到数据库中,因为它映射到表中的特定行。

SQLAlchemy使用Data Mapper实现 - 使用此类实现时,数据库结构与对象结构之间存在分离(它们不是Active Record实现中的1:1关系)。在大多数情况下,您必须使用另一个持久性层来与数据库交互(例如,保存对象)。因此,您不能像使用Active Record实现时那样调用save()方法(这是一个缺点),但另一方面,您的代码不必了解数据库中的整个关系结构才能正常运行,因为代码和数据库之间没有直接关系。

那么它们中哪一个赢得了这场战斗呢?没有。这取决于你想要实现什么。我认为,如果你的应用程序主要是CRUD(创建、读取、更新、删除)应用程序,并且没有在不同数据实体之间应用硬性和复杂的规则,那么你应该使用Active Record实现(Django)。它将允许您轻松快速地为您的产品设置MVP,而不会有任何麻烦。如果您的应用程序中有很多“业务规则”和限制,那么您可能更适合使用Data Mapper模型,因为它不会像Active Record一样束缚您并强迫您严格思考。


-1

TG2似乎非常复杂和令人困惑,即使是像登录页面这样的简单操作也需要多个错误消息。 如何扩展Turbogears 2.1登录功能 我认为这是由于模块化不当导致的...


-1
我只有一个问题...你正在开发的应用是面向社交网络还是定制化的业务逻辑?
个人认为如果是社交网络的话,Django是不错的选择;而如果真的想要灵活性和无限制,可以考虑使用pylons/turbogears...
纯属个人意见。

我个人认为Django非常适合社交网络。毫无意义的具体描述。不是这样的。 - Rob Grant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接