首先安装了Flask-wtf,WTForms是跟着一起安装了。
在表单应该无错误的情况下始终验证为false,并且form.errors为空,所以不知道为什么不通过验证。
print form.validate_on_submit()
print form.errors
输出:
False
{}
之后改用WTForms.Form, 也是同样的输出:
print form.validate()
print form.errors
CSRF验证都在html中加上了,如果是Flask-wtf的情况是 {{ form.hidden_tag() }}
,WTForms的情况是{{ form.csrf_token }}
。
Edit:
原来按照https://flask-wtf.readthedocs.org/en/latest/quickstart.html#creating-formsform = TestForm()
获取表单,改为 form = TestForm(request.form)
后有输出form.errors
。
{'mode_date': [u'Not a valid choice'], 'csrf_token': ['CSRF token missing']}
Edit:
通过在form的定义中添加coerce=int
解决了RadioField报错[u'Not a valid choice']
。