在我的登錄頁面上,當用戶輸入尚未注冊或電子郵件格式無效的電子郵件地址時,它應該給他一條錯誤訊息。但是當我提交表單時,我沒有收到任何錯誤。我試圖列印form.errors,但我得到了一本空字典。我在注冊時使用了相同的邏輯,它在那里作業。
表格.py
class LoginForm(FlaskForm):
email = StringField("", validators=[DataRequired(), Email()])
password = PasswordField("", validators=[DataRequired()])
submit = SubmitField("LOG IN")
視圖.py
@users.route("/login", methods=["GET", "POST"])
def login():
form = LoginForm()
if form.validate_on_submit:
user = User.query.filter_by(email=form.email.data).first()
if user is not None and user.check_password(form.password.data):
login_user(user)
return redirect(url_for("core.home", user=user))
return render_template("login.html", form=form, total_quantity=session["total_quantity"])
登錄.html
<div id="login-container">
<h5>LOG IN</h5>
<p>Please enter your e-mail and password:</p>
<form method="POST">
{{form.hidden_tag()}}
{{form.email.label()}} {{form.email(placeholder=" Email", id="email")}}<br>
{% for error in form.email.errors %}
<span style="color: #e50000;">{{ error }}</span><br>
{% endfor %}
{{form.password.label()}} {{form.password(placeholder=" Password", id="password")}}<br>
{% for error in form.password.errors %}
<span style="color: #e50000;">{{ error }}</span><br>
{% endfor %}
{{form.submit(id="login")}}
<p>Not a member!
<a class="nav-link d-md-inline" href="{{ url_for('users.registration') }}" id="logreg-link"> REGISTER</a>
</p>
</form>
</div>
uj5u.com熱心網友回復:
form.validate_on_submit() 應該是一個函式呼叫。你忘記了括號。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/351745.html
下一篇:從派生類中看不到C 繼承的方法
