在过去的几年里,我一直在使用 Turbogears 1 对小型站点进行原型设计,而且它的使用时间有点长。关于在升级到 Turbogears 2 或切换到 Django 之类的东西之间进行调用的任何建议?我在 TG 社区的熟悉度与使用 Django 的更大社区之间感到左右为难,他们响应速度很快,文档也很好。我对内置的 CMS 功能和 Google AppEngine 支持非常感兴趣。
有什么建议吗?
在过去的几年里,我一直在使用 Turbogears 1 对小型站点进行原型设计,而且它的使用时间有点长。关于在升级到 Turbogears 2 或切换到 Django 之类的东西之间进行调用的任何建议?我在 TG 社区的熟悉度与使用 Django 的更大社区之间感到左右为难,他们响应速度很快,文档也很好。我对内置的 CMS 功能和 Google AppEngine 支持非常感兴趣。
有什么建议吗?
TG2 建立在 Pylons 之上,Pylons 也有相当大的社区。与 TG1 相比,TG 变得更快,它包括一个按方法(不仅仅是网页)缓存引擎。我认为它比 Django 对 AJAX 更友好,因为页面可以很容易地以 HTML 或 JSON 形式发布。
2011 年更新:经过 3 年臃肿的框架,我是http://bottlepy.org/的快乐用户
我有 Django 和 TG1.1 的经验。
IMO,TurboGears 的强项是它的 ORM:SQLAlchemy。当数据库方面的事情不平凡时,我更喜欢 TurboGears。
Django 的 ORM 并没有那么灵活和强大。
话虽如此,我更喜欢 Django。如果数据库模式非常适合 Django 的 ORM,我会选择 Django。
根据我的经验,与 TurboGears 相比,使用 Django 更简单。
我已经使用 Django 一年了,当我开始使用 Python 或 Django 时,我发现它使用起来非常直观。
我已经使用 Django 创建了许多爱好者的 Google App Engine 应用程序,最新的一个是我网站的 CMS。使用 Django 意味着我能够更快地编写代码,并且错误更少。
相信您会从网络上的 TurboGears 和 DJango 之间的大量比较中阅读。
但至于你对 CMS 和 GAE 的诱惑,我真的认为你必须走 DJango 的路。看看这些,然后自己决定。
我只有一个问题……您正在开发的应用程序是针对社交网络还是定制的业务逻辑?
如果您真的想要灵活性并且没有界限,我个人认为 Django 非常适合社交网络和 pylons/turbogears...
只是我的2c
TG2 看起来非常复杂和令人困惑,即使做一些简单的操作,比如带有多个错误消息的登录页面 如何扩展 Turbogears 2.1 登录功能 我认为这是因为模块化的不节制......
Django ORM 使用活动记录实现——你会在大多数 ORM 中看到这种实现。基本上这意味着数据库中的每一行都直接映射到代码中的一个对象,反之亦然。ORM 框架(如 Django)不需要预定义模式来使用代码中的属性。您只需使用它们,因为框架可以通过查看数据库模式来“理解”结构。此外,您可以将记录保存到数据库中,因为它已映射到表中的特定行。
SQLAlchemy 使用 Data Mapper 实现——当使用这种实现时,数据库结构和对象结构之间存在分离(它们不像 Active Record 实现中那样是 1:1 的)。在大多数情况下,您必须使用另一个持久层来保持与数据库的交互(例如,保存对象)。因此,您不能像使用 Active Record 实现时那样只调用 save() 方法(这是一个缺点),但另一方面,您的代码不必知道数据库中的整个关系结构即可运行,因为代码和数据库之间没有直接关系。
那么他们谁赢得了这场战斗呢?没有任何。这取决于您要完成的工作。我相信,如果您的应用程序主要是一个 CRUD(创建、读取、更新、删除)应用程序,并且没有硬性和复杂的规则适用于不同数据实体之间的关系,那么您应该使用 Active Record 实现(Django)。它将允许您轻松快速地为您的产品设置 MVP,没有任何麻烦。如果您的应用程序中有很多“业务规则”和限制,那么使用 Data Mapper 模型可能会更好,因为它不会束缚您并迫使您像 Active Record 那样严格思考。