Flask用户认证应用出现"GET / HTTP/1.1" 404错误求助
问题解决思路与修复步骤
核心问题
你的Flask应用未加载views.py中的路由定义,导致根路径/及其他路由都未注册到app实例上,因此访问时返回404错误。
分步修复
1. 让app加载views路由
修改app/__init__.py,在文件末尾导入views,确保路由被注册:
from flask import Flask app = Flask(__name__) app.config.from_object('app.config') # 导入views,触发路由注册 from app import views
2. 补充config缺失的配置项
views.py的登录逻辑依赖app.config['FOLDERS'],但当前config.py中仅定义了SECRET_KEY,会导致运行时KeyError。修改app/config.py添加用户配置:
SECRET_KEY = 'secrettest' # 添加测试用的用户账号密码,可根据需求调整 FOLDERS = { 'test_user': 'test_pass' }
3. 修复路由参数的转义问题
views.py中/user_files路由的参数写法被HTML转义(<filename>),需改为Flask支持的正常语法:
# 原错误写法:@app.route('/user_files/<filename>') @app.route('/user_files/<filename>') def user_files(filename): username = session.get('username') if username: folder_path = get_user_folder(username) return send_from_directory(folder_path, filename) return redirect(url_for('login'))
4. 验证修复效果
启动run.py后,访问127.0.0.1:5000,应能看到Hello, Faiss Flask!;访问127.0.0.1:5000/login可进入登录页面,使用config.py中配置的账号密码登录后能正常进入dashboard。
额外注意事项
- 确保
user_folders目录有读写权限,避免创建用户文件夹时出现权限错误 - 生产环境中请勿开启
debug=True,存在安全风险 - 若后续路由增多,可考虑使用Flask Blueprint拆分路由,提升代码可维护性
内容的提问来源于stack exchange,提问作者yonafunu
相关产品推荐
相关产品推荐

