首页 > 解决方案 > 如何比较烧瓶中的两个密码

问题描述

我如何比较烧瓶中的两个密码?我需要在哪里这样做:在课堂上还是在 request.method == "POST" 中?谢谢!

class ContactForm(FlaskForm):
    email = StringField(label='E-mail', validators=[
        validators.Length(min=5, max=35), validators.Email()
    ])
    password = StringField(label='Password', validators=[
        validators.Length(min=6, max=10)
    ])
    password_confirm = StringField(label='Password confirm', validators=[
        validators.Length(min=6, max=10)
    ])

    def validate_name(form, field):
        if len(field.password.data) != len(field.password_confirm.data):
            raise ValidationError('Passwords must be equal')

标签: pythonvalidationflaskflask-wtformswtforms

解决方案


这里的示例中,您可以使用validators.EqualTo().

class ContactForm(FlaskForm):
    email = StringField(label='E-mail', validators=[
        validators.Length(min=5, max=35), validators.Email()
    ])
    password = StringField(label='Password', validators=[
        validators.Length(min=6, max=10),
        validators.EqualTo('password_confirm', message='Passwords must match')
    ])
    password_confirm = StringField(label='Password confirm', validators=[
        validators.Length(min=6, max=10)
    ])

请注意,您可能还应该使用PasswordField而不是StringField.


推荐阅读