核对密码可以在定义表单的时候定义,代码如下:
class LoginForm(FlaskForm):
"""管理员登录表单"""
account = StringField(
label="账号",
validators=[
DataRequired("请输入账号!")
],
description="账号",
render_kw={
"class": "form-control",
"placeholder": "请输入账号!",
# "required": "required"
}
)
pwd = PasswordField(
label="密码",
validators=[
DataRequired("请输入密码!")
],
description="密码",
render_kw={
"class": "form-control",
"placeholder": "请输入密码!",
# "required": "required"
}
)
submit = SubmitField(
'登录',
render_kw={
"class": "btn btn-primary btn-block btn-flat",
}
)
def validate_account(self, field):
account = field.data
admin = Admin.query.filter_by(name=account).count()
if admin == 0:
raise ValidationError("账号不存在!")
def validate_pwd(self, field):
from app.models import Admin
pwd = field.data
name = self.account.data
admin = Admin.query.filter_by(name=name).first()
if not admin.check_pwd(pwd):
raise ValidationError("密码错误!")