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>