我是一名训练有素的计算机程序员,但已经离开web开发一段时间了。我正在做一些关于各种Python web开发框架的背景研究。我知道Django,Grok /Zope3和Pylons都是很好的可靠框架,但在后台使用它们的方式很少。谁能给我解释一下每个框架在方法上的区别,以及与其他框架相比,一个框架的闪光点在哪里?
我的具体用例是构建一个web应用程序,该应用程序将根据用户提供的各种信息向用户推荐产品。因此,它将需要相当多的用户输入基本配置文件,产品偏好,试图建立用户之间的社会关系。它还需要支持员工将带有标签功能的产品上传到系统中,然后可以将这些功能与用户匹配。
关于最后一点,Plone的某些部分是否有助于为非技术人员提供一个上传产品和产品描述的界面?一张纸条容易借吗?似乎我不应该重新发明轮子,让人们可以上传要出售/推荐的项目以及一些描述项目的元数据。谢谢你的帮助。
发布于 2011-05-01 23:27:52
根据您的背景和需求,我建议您使用基于Django的http://pinaxproject.com/之类的工具。
金字塔(Pylons的后继者)是一个非常低级的框架,您需要选择库或自己编写所有应用程序代码。对于有经验的人来说,这是有意义的,并让您完全控制您的代码。但是,如果您从头开始并不熟悉可用的库,这将是一个障碍。
Django和Grok都是高级框架,Django是更受欢迎的选择。如果您还不熟悉使用对象数据库或URL遍历,那么Grok学习起来会更耗时。
Plone不适合您的用例。它是一个内容管理系统,而不是一个通用的web框架。它使用的库很少可以在不同的上下文中重用,当然它的UI都不能重用。如果你想通过个性化内容提供吸引人的用户体验,Plone不适合你--这不是它被构建来处理的。
免责声明:我是Plone和Zope 2/ Zope Toolkit的发布经理,使用过Pyramid,但没有使用Django。
发布于 2011-05-02 14:56:33
Dolmen project是一个建立在Grok之上的内容管理系统。非常简单,但使用它的人很少。如果你使用Grok,你可以重用GUI。
但正如Hanno所说,Grok比Django更耗时。此外,Django的用户比Grok多得多。
使用Grok的好处是,您可以从Zope组件架构中获益,几乎不需要编写ZCML和使用装饰器。
有了金字塔/塔架,你就得到了一个非常简单的框架。它是一个解耦的框架,所以你可以自由地使用你想要的任何模板引擎(Mako,Genshi,Jinja,Cheetah),你可以自由选择sqlalchemy,zodb,mongoDb等等,你也可以自由选择url映射方案(遍历vs. django风格的映射或者两者的组合)。如果你愿意,你也可以在这里使用ZCA。对于初学者来说,这可能会变得非常混乱或冗长。
Django是一种整体式框架,它为您提供了一种方法。这就是为什么它很容易学习,也是一个非常好的选择。但是,根据我的经验,有时你想偏离Django标准,如果不修补一堆东西,就无法做到这一点。
至于Zope3,我建议你下载一份BlueBream的副本,看看它是如何为你做的。
发布于 2011-05-02 05:11:59
作为一个Plone用户,我可以说用Plone创建内容对象是很困难的。关于如何做到这一点的文档并不多,而且很复杂。一些人建议使用UML和专门的Plone产品来使其更容易,但这又引入了另一个依赖。
我提到内容对象的问题是因为您的“产品”(与Plone产品不同)可能会在Plone中表示为您需要自己编写的内容对象。
当用户和编辑以新闻文章、新闻稿、照片等形式输入和批准文本时,Plone是最好的。当这是用例时,有预定义的内容对象,所以不需要自己编写它们。
--乔纳森·马克
https://stackoverflow.com/questions/5848725
复制相似问题