在此实例之前,我一直在flask 中使用wtforms 为我成功验证表单。我无法获得密码更改表单来验证表单。我正在用简单的实例测试验证打印这个,而不验证打印这个。
我的课堂
class UpdateBFormPass(FlaskForm):
password = PasswordField('Password', validators=[DataRequired()])
confirm_password = PasswordField('Confirm Password',
validators=[DataRequired(), EqualTo('password')])
我的路线:
@app.route('/updateBpass', methods=['GET', 'POST'])
def updateBpass():
print('in updateB password form')
# updateB_form = UpdateBForm()
updateB_pass_form = UpdateBFormPass()
print(updateB_pass_form.password.data)
print(updateB_pass_form.confirm_password.data)
if updateB_pass_form.validate_on_submit():
print('profile update validated')
return render_template('success.html')
# return redirect(url_for('display_update', updateB_form=updateB_form,updateB_email_form=updateB_email_form))
else:
print('form not validated')
mysql = connectToMySQL(DB)
data = {
'buyerID': session['userid']
}
query = 'SELECT * FROM buyers WHERE buyerID = %(buyerID)s;'
result = mysql.query_db(query, data)
# return redirect(url_for('display_update', updateB_form=updateB_form,updateB_email_form=updateB_email_form))
# return redirect(url_for('display_update', updateB_form=updateB_form,updateB_email_form=updateB_email_form,user=result))
# return render_template('update_profileB.html', updateB_form=updateB_form,updateB_email_form=updateB_email_form,updateB_pass_form=updateB_pass_form,user=result)
return render_template('fail.html')
我的模板部分
<div class="form-group">
<div class="input-group-prepend">
{{updateB_pass_form.password(class="form-control" )}}
</div>
<ul>
{% for error in updateB_pass_form.password.errors %}
<li style="color:red;">{{ error }}</li>
{% endfor %}
</ul>
</div>
<!--END Input New Password-->
<div class="form-group">
<div class="input-group-prepend">
{{updateB_pass_form.confirm_password(class="form-control" )}}
</div>
<ul>
{% for error in updateB_pass_form.confirm_password.errors %}
<li style="color:red;">{{ error }}</li>
{% endfor %}
</ul>
</div>
<!--END Input