Python Flask中表单验证的问题?
最近在学习python的flask框架,在表单验证的时候遇到了一些困惑,现提出来,然望大家可以给我解答下。
1.wtforms的表单生成和表单验证一般都是一起用的,但是现在我己经有了前端模板,页面己经写好,我只需要使用表单验证功能,这样的话该如何使用呢?
2.如果要做成前后端分离的状态,前端用ajax提交,后端需要对所提交的数据做验证后返回结果,这样的话该如何处理?是可以直接使用wtforms还是有相应的别的库可以使用, 还是必须要自己写呢?
3.看了wtforms的使用方法,貌似验证都是基于表单验证的,这样的话我如果在api中又如何使用呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
Wtforms的代码可以hack一下,就可以做json数据校验了。可以看这里zerqu关于wtforms的使用。也可以在我正在联手的项目中看到collector
感觉题主想复杂了,把简单的问题复杂化了。
既然想做前后端分离,就使用restful,直接抛弃jinja2,当然,这样的话也就无需使用wtforms了。然后,前端,后端各做个的表单验证即可。
以下是主要支持的library:
所以如果你有自己的模板且在上面支持的列表里的话应该稍作修改便可使用。如果你需要前后端分离的话,就不应该用这种前后端一条龙的工具库。如果是想用restful api的话,参考下django REST framework
WTForms本身既可以用来渲染html控件,可以单独用来验证表单,如果要支持JSON,可以用1楼的hack。
我推荐你用flask_wtf,这个插件,这个插件是对wtfoms的进一步封装,支持form,也支持json,CSRF,文件上传。我在项目里,页面渲染和WebService都是用的这个插件。
例子:
form.py
view.py
前台POST数据:
如果要做前后端分离,做表单验证可以用这个marshmallow https://github.com/marshmallo...
marshmallow除了生成一个可读性很好的类和验证该字段是不是类型符合以外,还支持序列化和反序列化的处理
http://www.dongwm.com/archive...
这里面有简单的介绍
Flask RESTful API开发之序列化与反序列化
https://blog.igevin.info/post...