请问在python 的web框架中是如何实现表单验证的呢? 一般像django和flask都有自己的方式,但是一般都是前后端一体的,无法做到前后端分离。比如flask的 wtforms,验证后的错误信息无法直接返回给前端js,只能通过jinja2语法让其显示到页面上,这样的话如果表单使用ajax提交的话,就无法获得验证的错误信息了,想知道这种情况下如何处理的?
如果是靠自己手写的话,能否给个相关的例子参考一下?
请问在python 的web框架中是如何实现表单验证的呢? 一般像django和flask都有自己的方式,但是一般都是前后端一体的,无法做到前后端分离。比如flask的 wtforms,验证后的错误信息无法直接返回给前端js,只能通过jinja2语法让其显示到页面上,这样的话如果表单使用ajax提交的话,就无法获得验证的错误信息了,想知道这种情况下如何处理的?
如果是靠自己手写的话,能否给个相关的例子参考一下?
正常的使用 flask 的前后端一体化架构的话,在 web 页面中使用到的是 jinja2 模板,wtforms 的错误显示是用如下方式的:
这是一个登录错误提示实例。
<!-- 错误信息form提示 -->
{% for field_name, field_errors in loginForm.errors|dictsort if field_errors %}
{% for error in field_errors %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<strong>{{ loginForm[field_name].label }}错误:</strong> {{ error }}
</div>
{% endfor %}
{% endfor %}
<!-- 错误信息form提示 end >
按照题主的询问是需要用 ajax 捕捉到错误提示的,也就是说 wtforms 的验证结果需要用 json 的格式发送到页面,这也是一个 flask-restful 验证的一个难点。
最后,希望大侠能给出一个更好的答案,或者哪位大侠能够修改一下 wtforms 源码。
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
wtforms
可以实现你的需求。写一个简单的 Flask 例子吧
在运用
wtform
的时候,不必用它的模板渲染,定义一个Form
类,然后参数传进去实例化之后,该怎么用怎么用,最后直接返回json
即可。