Django vs.Grok/Zope3 vs.塔架

Django vs.Grok/Zope3 vs.塔架,django,plone,zope,grok,Django,Plone,Zope,Grok,经过培训,我是一名计算机程序员,但已经离开web开发一段时间了。我正在对各种Python web开发框架进行一些背景研究。我知道Django、Grok/Zope3和Pylons都是很好的坚实框架,但它们的背景知识很少。有人能给我解释一下每种框架在方法上的差异吗?和其他框架相比,其中一种框架的优势在哪里 我的具体用例是构建一个web应用程序,该应用程序将根据用户提供的各种信息向用户推荐产品。因此,它需要用户以基本配置文件、产品偏好的形式进行大量的输入,试图在用户之间建立社会关系。它还需要支持工作人

经过培训,我是一名计算机程序员,但已经离开web开发一段时间了。我正在对各种Python web开发框架进行一些背景研究。我知道Django、Grok/Zope3和Pylons都是很好的坚实框架,但它们的背景知识很少。有人能给我解释一下每种框架在方法上的差异吗?和其他框架相比,其中一种框架的优势在哪里

我的具体用例是构建一个web应用程序,该应用程序将根据用户提供的各种信息向用户推荐产品。因此,它需要用户以基本配置文件、产品偏好的形式进行大量的输入,试图在用户之间建立社会关系。它还需要支持工作人员将带有标签功能的产品上传到系统中,然后可以与用户进行匹配


最后一点,Plone的部分功能是否有助于为非技术人员提供一个上传产品和产品描述的界面?一块布龙容易借吗?似乎我不应该重新发明轮子,让人们可以上传物品以供出售/推荐,并使用一些元数据来描述物品。谢谢您的帮助。

基于您的背景和要求,我建议您选择类似于Django的产品

Pyramid(Pyramid的继承者)是一个非常低级的框架,您需要选择库或者自己编写所有的应用程序代码。对于有经验的人来说,这是有意义的,可以让您完全控制代码。但是,如果您从零开始,并且不熟悉可用的库,那么这有点困难

Django和Grok都是高级框架,Django是比较流行的选择。如果您还不熟悉使用对象数据库或URL遍历,那么Grok学习起来会花费更多的时间

Plone不适合您的用例。它是一个内容管理系统,而不是一个通用的web框架。它使用的库很少可以在不同的上下文中重用,当然它的UI中也没有。如果你想通过个性化内容提供引人入胜的用户体验,Plone不适合你——这不是它构建的目的


免责声明:我是Plone和Zope 2/Zope Toolkit的发布经理,使用过Pyramid,但没有使用Django。

作为Plone用户,我可以说在Plone中创建内容对象很困难。关于如何做的文档不多,而且很复杂。有些人建议使用UML和专门的Plone产品使其更容易,但这引入了另一种依赖性

我提到内容对象的问题是因为您的“产品”(与Plone产品不同)可能会在Plone中表示为您需要自己编写的内容对象

当用户和编辑以新闻文章、新闻稿、照片等形式输入和批准文本时,Plone是最好的。在这种情况下,此类内容有预定义的内容对象,因此不需要自己编写

--Jonathan Mark是建立在Grok之上的CMS。它非常简单,但很少有人使用它。如果使用Grok,就可以重用GUI

但正如汉诺所说,格罗克比德扬戈更费时。Django的用户也比Grok多得多

使用Grok的优点是,几乎不用编写ZCML和使用装饰器,就可以从Zope组件体系结构中获益

有了金字塔/塔架,你就得到了一个非常简单的框架。它是一个解耦的框架,因此您可以自由使用任何模板引擎(Mako、Genshi、Jinja、Cheetah),可以自由选择sqlalchemy、zodb、mongoDb等,还可以自由选择url映射方案(遍历与django风格映射或两者的组合)。如果您愿意,也可以在这里使用ZCA。首先,这可能会变得相当混乱或冗长

Django是一种整体框架,它为您提供了一种完成任务的方法。这就是为什么它很容易学习,而且是一个很好的选择。但是,根据我的经验,有时你会想要偏离Django标准,如果不修补一堆东西,这根本无法实现


而且,对于Zope3,我建议您下载一份,看看它对您有什么帮助。

它的文档记录不是很差。最佳实践是将粘贴代码生成器与ZopeSkel模板一起使用。非常直截了当。