7

grok 比 django 更好的粉碎(双关语)功能是什么?我怎么知道我的项目何时需要 grok+zope,或者它可以用 django 开发?

4

3 回答 3

7

Zope 是第一个对象发布框架evah,Zope 社区在Doing Things The Right Way 方面有着长期的经验。Zope 2 是第一次尝试,Zope 3 是下一次尝试,我们现在进入了第三代 Web 框架,包括 Grok、BFG 和 Bobo。

Grok 非常庞大,并且有更多可用的模块,而这些模块在您安装基础时不会出现(并且它也在减少所需模块的数量,因此占用空间变得更小)。BFG 和 Bobo 则相反,它们是极简框架,但可以轻松访问 Zope Toolkit 和 Zope 的所有功能。

尽管 Django 犯了许多与 Zope2 相同的错误,但他们也更快地修复了这些错误,所以我完全希望这个讨论的大部分内容在五年内变得毫无意义,因为我希望每个 Python Web 框架都使用 WSGI+WebOb+届时以 Repoze+Deliverance+Buildout 为基础。但即便如此,我也会选择可以使用 Zope 组件架构和 ZODB 的框架,但这不仅包括 Zope 社区制作的框架,还包括 Turbogears。也许到那时它也会包括Django,谁知道...... :-)

根据项目要求,我今天会选择 Plone(如果他们需要 CMS)、Grok 或 BFG(取决于所涉及的开发人员,以及任务的复杂性和预算)。这当然部分取决于我对 Zope 技术的丰富经验和我对 Django 的少量经验,但主要是因为我可以在 Grok 和 BFG 中使用 ZTK 和 ZODB。

YMMV等,等等。

于 2009-10-03T10:11:23.207 回答
5

Grok 基本上是 zope 的所有功能,以一种更易于使用的方式封装。因此,您确实获得了真正的 python 对象数据库的所有奢华(尽管您可以使用 sql 后端)。我假设您了解所谓的“zope 组件架构”的适配器/实用程序/视图。这些允许您制作强大的应用程序。如果您以后需要有选择地自定义它,则特别方便。传统上,安全性是 zope(因此是 grok)的强项。开发和部署完全由鸡蛋(和扩展)处理:根据我的经验,这是一种强大、可靠、可重复和舒适的方式。

如果您的应用程序可以使用直接的 sql 表而无需事后进行选择性定制:django 没有错。你必须自己做很多安全工作,所以这需要敏锐的眼光。它背后的框架要少得多(ORM 和 url 映射器),所以你的 python 会感觉更“纯粹和简单”。这也意味着你需要自己做更多的事情。

没有什么可以阻止您有选择地使用 grok 的某些部分:例如,http://pypi.python.org/pypi/grokcore.component非常核心。隔离得很好,因此您无需购买整个 zope 堆栈即可使用它。我很确定你可以在 django 中使用它。grokcore/zope 组件只是 python 代码。这将为您提供适配器/接口/实用程序。我不知道您在构建什么,因此您必须进行实验。

我建议尝试一下非常有利于 grok 的一件事:zope 的 ZODB 对象数据库。一个好的 ORM(和 django 的相当不错)有助于减轻 SQL 数据库的痛苦,但真正的对象数据库只是简单的奢侈品 :-)

于 2009-10-01T05:18:56.797 回答
2

我不认为任何框架都旨在具有使一个“更好”比另一个“更好”或在某些情况下“需要”的任何“功能”。相反,Django 和 Grok(或 Pylons 或 Turbogears)之间的区别实际上是一种方法。您可能会根据自己的喜好找到 Grok 的方法,或者您可能更喜欢其他方法之一。我怀疑你可以在其中一个中实现很多你在其他任何一个中都做不到的事情。

于 2009-09-30T22:26:16.097 回答