python flask wtforms flask-wtforms

python - El formulario nunca es válido con WTForms



flask flask-wtforms (1)

Flask-WTF agrega un campo de protección CSRF . Si no está presente, la validación CSRF fallará y el formulario no será válido. Use form.hidden_tag() para incluir cualquier campo oculto en su formulario (incluido el campo CSRF).

<form method="post"> {{ form.hidden_tag() }} ...

En general, si un formulario no se está validando, debe verificar form.errors después de llamar a validate para ver qué está mal.

No ve el error ya que no está representando ese campo (o representando los errores para cualquier campo en este caso, pero eso no ayudaría con este problema). Si ejecutó un depurador y examinó form.errors , vería que de hecho había un error "Falta el token CSRF" .

Tengo un formulario Flask-WTF para iniciar sesión. Aparentemente, el formulario nunca es válido, no importa lo que ingrese "éxito" nunca se imprime. ¿Por qué no se valida mi formulario?

class loginForm(Form): email = EmailField(''email'', validators=[InputRequired("Please enter your email address."), Email("Please enter a valid email address.")]) password = PasswordField(''password'', validators=[InputRequired("Please enter your password.")]) @app.route(''/sign-in'', methods=[''POST'', ''GET'']) def signIn(): form = loginForm(request.form) if form.validate_on_submit(): print ''success'' return redirect(''/'') return render_template(''signIn.html'')

<form method="POST" action="/sign-in"> {{ form.email(placeholder=''Email'', class="textBox") }} {{ form.password(placeholder=''Password'', class="textBox") }} <button onclick="submit()">Sign In</button> </form>