在实际的应用程序中,如果我使用表单框架,我不可避免地会在某个时候与之抗衡。在
我对在网站中构建表单的最佳实践模式感兴趣。引用任何语言的实现都是一个额外的好处(我通常在Python中工作)。我对创建/向最终用户显示表单的问题特别感兴趣。在
以下是我对这个主题的看法。表单工作流的大多数部分都可以用相对轻量级的组件来处理,这些组件可以从formencode和{a2}等框架中提取出来。我所说的“大多数部分”是指将提交的表单数据解码为一个合理的数据结构(例如,表单中的重复字段在Python中应该变成列表);将值编组成我们想要的类型(例如,“age”字段应变为整数);以及验证这些值(例如,“年龄不能为空”)。在
我最后要做的就是制作和展示这些表格。许多框架(例如FormAlchemy)将它们的模式、验证和模型与某种表单小部件生成方案紧密地耦合在一起,这是我不喜欢的。在
制作表格的任务包括:
我认为这样做的选择是:
有没有其他处理这个问题的模式?各有哪些利弊?在
到目前为止,我所研究/指出的框架(Python)是:flatland,formencode,FormAlchemy,formish,WTForms,Django形式,web2py,deform,FormConvert和{a15}
更新:关于构建表单的最佳实践,我的回答还不算太远,但我已经在我当前的项目中决定使用deform/colander,这是处理序列化等问题的一种合理方法,但更重要的是,它有很好的文档记录和良好的测试。除了最简单的表单之外,我将完全避免表单生成。在
还有一个web.py的表单类,您可能会觉得很有趣。在它的cookbook中有一些例子。在
你可以试试
django
。它有forms
模块,为web表单提供了许多有用的机制。在您可以查看web2py,它为generating and processing forms提供了几种机制(另请参见与表单相关的Javascript and Ajax functionality)。它的form对象(和其他HTML helper对象)是htmldom的服务器端表示,可以在序列化为HTML之前对其进行操作(请参见ref1,ref2,ref3,ref4)。如果您对它有进一步的问题,请在mailing list上提问。在
相关问题 更多 >
编程相关推荐