2011-04-14 154 views
16

对于使用Pyramid Web框架的新(Python)Web应用程序,我想使用表单绑定和验证库,到目前为止找到了simpleformdeform。有没有人有这些经验,并可以告诉我为什么我应该选择一个或另一个?我没有使用ORM,只是POPO这么说。金字塔:简单或变形?

我想我现在更喜欢最简单的方法。

+1

另外[wtforms](http://wtforms.simplecodes.com/) 。我已经在几个金字塔应用程序中使用过它们,并且很满意它们。这里可能有很多主观性,但FWIW wtforms相对成熟,所以值得参与讨论。 – chris 2013-02-03 19:15:02

+0

@george最佳发布作为答案我认为,更多的人会看到它,并可以给他们的反馈 – 2013-02-04 00:12:48

回答

11

我还没有丰富的经验,但到目前为止,这是我所学到的。

它们都使用漏勺(我非常喜欢)来定义和验证表单。在我看来,真正将它们分开的是它们的渲染机制。在这方面,变形是最直接的,因为它允许您通过在模板中执行form.render()来渲染整个表单。另一方面,使用简单形式,您必须手动呈现每个字段。这可能是一个好或坏的事情取决于你需要什么。

简单形式的缺点是目前没有明确的方式来处理模板中的序列模式。

编辑:此外,在我看来,变形有更好的文档可用。

+0

Addentum:simpleform似乎不再使用变形。其余的考虑依然成立。 – madjar 2012-11-08 09:42:49

3

我还没有使用simpleform,但我一直在使用我目前正在研究的项目的变形。变形允许您从漏勺模式渲染模板,这非常方便。另外,如果违反了模式,您可以简单地调用ValidationFailure.render()(在捕获ValidationFailure异常之后),并且可以使用表单呈现一条您可以自定义的消息。我现在正努力在渲染整个表单并逐件渲染它之间做出选择。如果您可以将组件组合在一起进行渲染,那将非常好。

2

虽然这是第三种选择,但是你认为是ToscaWidgets2

从简单的形状和变形的快速浏览,在我看来,Toscawidgets2是这两个之间的特点和简单的中间golde。

甚至还有一个tutorial for using it with Pyramid,只需删除数据库部分并提供表单值作为字典。