Flask 表单form.validate_on_submit()什么情况下会是false??
1、在form中受到validators控制,不满足条件就会导致false![在这里插入图片描述](https://img-blog.csdnimg.cn/20190221133338417.?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p5c2VsZg==,size_16,color_FFFFFF,t_70)
2、在form中使用了raise抛出异常后也会false。![在这里插入图片描述](https://img-blog.csdnimg.cn/20190221133601884.)
3、表单的地方没写{{ form.csrf_token }},在HTML 里加上就好
4、定义表单时没写validators=[DataRequired()],如果不写这句,form.validate_on_submit()就认为表单是空的,所以会false。
这里注意如果是from flask_wtf import FlaskForm,validators里一定是DataRequired,如果是from flask_wtf import Form 那就是Required
account = StringField(u'账号', validators=[DataRequired()])
password = PasswordField(u'密码', validators=[DataRequired()])
submit = SubmitField(u'登录')
5、中文编码问题(好像python3不存在这个问题)
上面已经写出来了,StringField(u’账号’, validators=[DataRequired()]),如果label有中文的话,一定要加Unicode,不然也会false的