我的目標(biāo)是:一旦在 /login 頁面上使用正確的憑據(jù)登錄,用戶就會(huì)被重定向到 /camera 頁面。實(shí)際結(jié)果:/login 頁面剛剛重新加載,表單輸入被擦除。無錯(cuò)誤消息/異常我查看了代碼,但不明白為什么要這樣做。任何幫助表示贊賞。main.py:from flask import Flask, render_template, redirect, url_forfrom flask_wtf import FlaskFormfrom flask_login import LoginManager, login_requiredfrom flaskconfig import Configfrom wtforms import StringField, PasswordField, SubmitFieldfrom wtforms.validators import DataRequiredfrom werkzeug.security import check_password_hashapp = Flask(__name__)app.config.from_object(Config)logindatabase = { 'User1': 'pbkdf2:sha256:150000$QLfB2gVe$fd76b36df43686e7a8e27a9066331727e246f0d2835688d8d303af2f9b13a1cc', 'User2': 'pbkdf2:sha256:150000$4rK2hvN8$d4940c3dac1ce6f293bc495934fce92cb840c470c83eb0e3b864f407eec85868'}class LoginForm(FlaskForm): username = StringField('Username', validators=[DataRequired()]) password = PasswordField('Password', validators=[DataRequired()]) submit = SubmitField('Sign In')@app.route('/')def home(): return redirect(url_for('login'))@app.route('/login', methods = ['GET', 'POST'])def login(): form = LoginForm() if form.validate_on_submit(): user = form.username.data if user is None or user not in logindatabase.keys() or check_password_hash(logindatabase[user], form.password.data) == False: return redirect(url_for('login')) else: login_user(user) return redirect(url_for('camera')) return render_template('login.html', title = 'Log In', form = form)@app.route('/camera')@login_requireddef camera(): return render_template('camera.html')if __name__ == '__main__': app.run(host = '0.0.0.0')注意:在主機(jī) 0.0.0.0 上運(yùn)行,因?yàn)槲艺?repl.it 上開發(fā)(有意)模板>登錄.html:<!DOCTYPE html><html> <head> <title>Login Page - Door Camera System</title> </head> <body> <h1>Welcome!</h1> <hr> {% with messages = get_flashed_messages() %} {% if messages %} <ul> {% for msg in messages %} <li> {{ msg }} </li> {% endfor %} </ul> {% endif %} {% endwith %}
1 回答

牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
方法應(yīng)該是 POST 并刪除 novalidate。
<form action="" method="post">
{{ form.hidden_tag() }}
<p>
{{ form.username.label }}<br>
{{ form.username(size=32) }}
</p>
<p>
{{ form.password.label }}<br>
{{ form.password(size=32) }}
</p>
<p>{{ form.submit() }}</p>
{{ form.csrf_token }}
</form>
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)
0/150
提交
取消