我正在學習 Python、Flask 和 WTForm。我的目標是,當我在“/login” HTML 頁面上按要求輸入電子郵件和密碼后,單擊 CommentForm 類中定義的“登錄”按鈕后,頁面將導航到“成功”或“拒絕”頁面。但是,代碼不起作用。單擊按鈕后,頁面保持靜止,而不是導航到其他頁面。下面的代碼有什么問題嗎?謝謝。
在 main.py ??
class CommentForm(FlaskForm):
email = StringField(label="Email", validators=[Email()])
password = PasswordField(label="Password", validators=[DataRequired(), Length(min=8)])
submit = SubmitField(label="Log In")
recaptcha = RecaptchaField()
@app.route("/login", methods=['GET', 'POST'])
def login():
form = CommentForm(request.form)
if request.method == 'POST' and form.validate():
if form.email.data == "[email protected]" and form.password.data == "12345678":
return render_template("success.html")
else:
return render_template("denied.html")
return render_template("login.html", form=form)
在 login.html 中??
<form method="post" action="{{ url_for('login') }}">
{{ form.csrf_token }}
{{ form.email.label }}<br>
{{ form.email(rows=1, cols=30) }}
{% for err in form.email.errors %}
<span style="color:red">{{err}}</span>
{% endfor %}<br>
{{ form.password.label }}<br>
{{ form.password(rows=1, cols=30) }}
{% for err in form.password.errors %}
<span style="color:red">{{err}}</span>
{% endfor %}<br>
{{form.submit}}
</form>
uj5u.com熱心網友回復:
我嘗試運行您的代碼(并嘗試了一些更改)
Python
@app.route("/login", methods=['GET', 'POST'])
def login():
if request.method == "GET":
form = CommentForm(request.form)
return render_template("login.html", form = form)
elif request.method == 'POST':
form = CommentForm(request.form)
if form.validate_on_submit():
if form.email.data == "[email protected]" and form.password.data == "12345678":
return "Welcome User"
elif not form.validate_on_submit():
print(form.errors)
return "Hey it is invalid"
return "??"
這導致呼叫 elif 時出現錯誤
{'recaptcha': ['The response parameter is missing.']}
為了解決這個
在您的 login.html 中添加 {{form.recaptcha}}
轉到https://www.google.com/recaptcha/admin/create
填寫表格并獲取公鑰和私鑰
在您的燒瓶應用程式集上
app.config["RECAPTCHA_PUBLIC_KEY"] = "yourkey"
app.config["RECAPTCHA_PRIVATE_KEY"] = "yourkey"
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/459279.html
標籤:Python 烧瓶 烧瓶-wtforms
上一篇:引數為空時Flask回傳什么
下一篇:Docker錯誤:MySQLdb._exceptions.OperationalError:(2002,"Can'tconnecttolocalMySQLserverthrough
