版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xckkcxxck/article/details/83154364
接上一篇,添加验证逻辑有以下几步:
1.导入所需的方法:
from wtforms.validators import DataRequired, EqualTo
一个是要求不能有缺失值,一个是判断两个东西是否相等。
2.在自定义表单类中进行添加:
class LoginForm(FlaskForm):
username = StringField(u'用户名:', validators=[DataRequired()])
password = PasswordField(u'密码:', validators=[DataRequired()])
password2 = PasswordField(u'确认密码:', validators=[DataRequired(), EqualTo('password', "错了老铁!")])
submit = SubmitField(u'提交')
3.在login()方法中添加一句话就可以实现验证:
# 3.验证参数
if login_form.validate_on_submit():
print(username)
return "success!"
else:
flash("参数有误!")
4.此外,还需要在html表单中加一句:
<form method="post">
{{ login_form.csrf_token() }}
{{ login_form.username.label }}{{ login_form.username }}<br>
{{ login_form.password.label }}{{ login_form.password }}<br>
{{ login_form.password2.label }}{{ login_form.password2 }}<br>
{{ login_form.submit}}<br>
</form>
注:这里csrf是跨站请求伪造,具体是什么我也没有研究过,只是说了应该加这么一句话。可以看这篇博客对csrf的介绍:https://blog.csdn.net/sinat_41898105/article/details/80783551