我想要一个表单验证库
1.将html生成与表单验证分开;
2.验证错误可以很容易地序列化,例如。转储为 json 对象
你会在 Python Web 项目中选择什么表单验证库?
我想要一个表单验证库
1.将html生成与表单验证分开;
2.验证错误可以很容易地序列化,例如。转储为 json 对象
你会在 Python Web 项目中选择什么表单验证库?
免责声明
一般来说,我现在对 HTML 表单库有点警惕。如果你使用来自巨型框架的东西,你总是必须引入整个巨型框架作为你的依赖。
许多大型框架的许多子组件声称不依赖于框架,但我们不要自欺欺人。如果您不使用其中一个,那么我所知道的至少有十几个表单库,它们的功能差异很大。仅是选择就会变得相当混乱。一般来说,正如 Ian Bicking 多年前所说并且仍然正确的那样,我认为适合每个人的表单库的概念是非常可笑的。事实上,我认为你可能需要三思而后行才能决定你真的需要一个。大多数情况下,您只需要像FormEncode这样的表单验证库。这真的取决于你想如何使用它。
对我来说,因为我不使用大型框架,所以我会选择轻量级、易于上手和配置以及不会妨碍正常使用 HTML/JS/CSS 的东西.
完 免责声明
我尝试过ToscaWidgets、ToscaWidgets 2、Formish、Deform、WTForms和 FormEncode。我不得不说它们都不是完美的。以下是我对他们的体验:
截至 2012 年底,对 Python 验证库的快速 Google 和 PyPI 搜索返回了数百个包。有十几个值得注意的,不包括那些正在积极开发的 Django 扩展。似乎有一种趋势是使用JSON-Schema定义模式并能够通用地验证 Python 数据结构。这可能反映了服务器应用程序开发人员正在接受来自多个渠道(RESTful API 和 HTML 表单)的用户数据,但仍然希望只使用一个验证库。
鉴于 Python 3.3 的发布可能会引发大规模运动,将现有库移植到支持 Python 3.x(另一方面是旧库停滞不前并且仅与 Python 2.x 兼容),明智的做法是选择一个已经支持或正在积极支持 Python 3.x 的版本。
最后,在选择表单验证库时,另一个值得关注的重要领域是报告有用错误消息的能力,从长远来看,这总是包括对错误消息本地化的需求。提供您自己的错误消息的容易程度将很快决定将库与您的 Web 应用程序架构的其余部分集成的复杂性。
有前途的后起之秀:
I'd probably pick WTForms.
这个话题有点老了,但我想我会无耻地插入一个我为此目的而编写的库。它不是 HTML 表单独有的,而是用它们编写的,至少部分考虑到了。
当我命名它时,我感觉不是很有创意,所以“验证器”现在必须做。给你:https ://github.com/wilhelm-murdoch/Validator
这取决于你使用什么类型的框架。
对于您的任务,我建议您使用易于使用且仍然“强大”的web2py-Framework 。默认情况下它具有表单验证(web2py-book是免费的),这正是您想要的:它将 html 生成与验证分开并自动执行此操作,但如果您愿意,您可以自定义它。
一个例子:
def display_form():
form=FORM('Your name:',
INPUT(_name='name', requires=IS_NOT_EMPTY()),
INPUT(_type='submit'))
if form.accepts(request.vars, session):
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
return dict(form=form)
也可以对错误进行序列化,但对于这些问题,最好在web2py-group上提问。他们非常好,会很快帮助你。
希望能帮助到你!此致..
it depends on what underlying framework you use.
for django , built in form framework is best,
while kay uses extended version of zine's form system
and tipfy uses WTForms.
django's built in system is best so far .
what framework do you use under the hood ?