【发布时间】:2022-01-08 05:33:10
【问题描述】:
我正在尝试制作一个注册页面并有两个密码字段:密码和密码2。
我遵循了文档,还尝试了论坛和堆栈溢出问题的许多不同变体,但它们似乎都不起作用。
这是我的代码:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, EmailField
from wtforms.validators import InputRequired, Length, EqualTo
class LoginForm(FlaskForm):
username = StringField('Username', validators=[InputRequired(), Length(min=4, max=15)])
password = PasswordField('Password', validators=[InputRequired(), Length(min=8, max=80)])
remember = BooleanField('Remember Me')
class SignupForm(FlaskForm):
email = EmailField('Email', validators=[InputRequired(), Length(max=64)])
username = StringField('Username', validators=[InputRequired(), Length(min=4, max=15)])
password = PasswordField('Password', validators=[InputRequired(), Length(min=8, max=80)])
password2 = PasswordField('Confirm Password', validators=[InputRequired(), EqualTo('password', message='Passwords must match')])
和模板:
{% extends 'base.html' %}
{% block content %}
<form class="mx-auto" style="max-width:30rem;" method="POST">
<h1>{{ title }}</h1>
<div class="mb-3">
{{ form.email.label(class_='form-label') }}
{{ form.email(class_='form-control') }}
</div>
<div class="mb-3">
{{ form.username.label(class_='form-label') }}
{{ form.username(class_='form-control') }}
</div>
<div class="mb-3">
{{ form.password.label(class_='form-label') }}
{{ form.password(class_='form-control') }}
</div>
<div class="mb-3">
{{ form.password2.label(class_='form-label') }}
{{ form.password2(class_='form-control') }}
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
在提交时,无论密码是否匹配,都会发送请求。不太清楚我哪里出错了。
所有其他验证器似乎都按预期工作
【问题讨论】:
-
“请求被发送”是什么意思?您能否将代码提供给使用此表单的路线?
标签: python forms flask flask-wtforms flask-login