flask學習:使用flask-wtf新增驗證邏輯
阿新 • • 發佈:2018-11-26
接上一篇,新增驗證邏輯有以下幾步:
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