在我的网络烧瓶应用程序中登录后未重定向到仪表板

问题描述 投票:0回答:1

我正在使用 localhost 将 Flask 用于我的 Web 应用程序(因为文件夹现在位于我的电脑中),我在 Flask 应用程序之前创建了一个登录页面,但在登录后没有重定向到仪表板(Flask 应用程序的前端)。它保留在登录页面上。我的资源分布有一个模板文件夹,其中放置了login.html、dashboard.html,还有一个静态文件夹,其中放置了script.js(用于密码)和style.css。登录后我没有重定向到仪表板。这是我的烧瓶应用程序的代码 从烧瓶导入烧瓶,渲染模板,请求,重定向,url_for,会话,flash

app = Flask(__name__)
app.secret_key = "your_secret_key"

@app.route('/')
def index():
return render_template('login.html')

@app.route('/login', methods=['POST'])
def login():
username = request.form.get('username')
password = request.form.get('password')

if username == 'admin' and password == 'password':
    session['logged_in'] = True
    app.logger.info('Login successful. Redirecting to dashboard...')
    return redirect(url_for('dashboard'))
else:
    flash('Invalid username or password. Please try again.', 'error')
    app.logger.warning('Login failed. Invalid username or password.')
    return redirect(url_for('index'))

@app.route('/dashboard')
def dashboard():
if 'logged_in' not in session:
    flash('Please login to access the dashboard.', 'error')
    app.logger.warning('User attempted to access dashboard without login.')
    return redirect(url_for('index'))

app.logger.info('User authenticated. Rendering dashboard...')
return render_template('dashboard')

if __name__ == '__main__':
app.run(debug=True)

我尝试了chatGPt,我期待处理这个错误和修改后的代码

authentication flask redirect dashboard
1个回答
0
投票

除了缩进之外,代码是正确的。 尝试运行此代码并查看它打印的内容

from flask import (Flask, session,request, flash, redirect,url_for)

app = Flask(__name__)
app.secret_key = "your_secret_key"

@app.route('/')
def index():
    return 'login'

@app.route('/login', methods=['POST'])
def login():
    username = request.form.get('username')
    password = request.form.get('password')
    print(request.content_type)
    print(username)
    print(password)
    if username == 'admin' and password == 'password':
        session['logged_in'] = True
        app.logger.info('Login successful. Redirecting to dashboard...')
        return redirect(url_for('dashboard'))
    else:
        flash('Invalid username or password. Please try again.', 'error')
        app.logger.warning('Login failed. Invalid username or password.')
        return redirect(url_for('index'))

@app.route('/dashboard')
def dashboard():
    if 'logged_in' not in session:
        flash('Please login to access the dashboard.', 'error')
        app.logger.warning('User attempted to access dashboard without login.')
        return redirect(url_for('index'))

    app.logger.info('User authenticated. Rendering dashboard...')
    return "dashboard"

if __name__ == '__main__':
    app.run(debug=True)

© www.soinside.com 2019 - 2024. All rights reserved.