python - 请问flask_wtf中的validate_on_submit如何调试?
本文介绍了python - 请问flask_wtf中的validate_on_submit如何调试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
小弟在联系通过flask做网页,但是目前遇到一个问题,通过flask_wtf生成的表单在validate_on_submit()时总为false,不知道是哪里不符合校验规则
代码如下:
forms.py
from flask_wtf import FlaskForm
from wtforms import *
from flask_wtf.file import file_required
class add_task_form(FlaskForm):
task_name = StringField('taskname',validators=[validators.data_required()])
db_name = SelectField('db_name',choices=[(1,'ODS'),(2,'EDW')])
task_cycle = SelectField('task_cycle',choices=[('D','日'),('W','周'),('M','月'),('Y','年')])
depends = FileField('depends',validators=[validators.data_required()])
views.py:
@app.route('/add_task', methods=['GET', 'POST'])
@login_checker
def add_task():
add_task_form = forms.add_task_form()
if request.method == 'POST':
print(add_task_form.validate_on_submit())
if add_task_form.validate_on_submit():
return 'ok'
else:
return 'oops'
else:
return render_template('add_task.html',
form = add_task_form)
前台网页(重点部分):
<body>
<div class="easyui-dialog" data-options="iconCls:'icon-save'" style="width:400px;height:200px;padding:10px">
<form method="post" action="{{ url_for('add_task') }}">
{{ form.csrf_token }}
<table>
<tr>
<td>任务名称:</td>
<td>{{ form.task_name }}</td>
</tr>
<tr>
<td>数据库:</td>
<td>{{ form.db_name }}</td>
</tr>
<tr>
<td>调度周期:</td>
<td>{{ form.task_cycle }}</td>
</tr>
<tr>
<td>依赖配置文件:</td>
<td>{{ form.depends }}</td>
</tr>
</table>
<button type="submit">提交</button>
</form>
</div>
</body>
所有选项,包括文件上传均填写,form.csrf_token也添加了,但是validate_on_submit依然返回false。请高人指点迷津,谢谢大家
解决方案
在模板页,form中写上{{form.errors}}
,这样提交时,能看到哪里错了。
另外你可以关注一下,SelectedField获取的值的类型,有可能是类型错误,需要加上coerce=int
这篇关于python - 请问flask_wtf中的validate_on_submit如何调试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文