首页 > 解决方案 > 如何正确使用 wtforms 验证器?

问题描述

在我的 Flask 应用程序中,使用了此登录表单,但 .loginForm.validate() 始终为 False。除了它之外的一切都很好。这个验证器有什么问题?

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[])
    password = PasswordField('Password', validators=[])
    log = SubmitField('Log in')
@auth.route('/', methods=['GET', 'POST'])
def main():
    loginForm = LoginForm()
    registerForm = RegisterForm()

    if request.method == 'POST':
        if loginForm.log.data and loginForm.validate():
            print(1)

(没有 loginForm.validate() 它打印 1, validate_on_submit 也不起作用)

标签: pythonflaskwtforms

解决方案


我不知道,但试试这个:

class LoginForm(FlaskForm):
    username = StringField(
        'Username',
        validators=[
            DataRequired(),
        ],
    )
    password = PasswordField(
        'Password',
        validators=[
            DataRequired()
        ],
    )
    submit = SubmitField('Log in') 

@auth.route('/', methods=['GET', 'POST'])
def login():
    form = LoginForm(request.form)
    if form.validate_on_submit():
        print('valid input')

推荐阅读