Flask新手访问已配置路由返回404错误,求排查问题原因
问题原因
- 未定义的
db对象导致路由文件导入失败,路由未注册到Flask实例
你的routes.py中导入了from applications import app, db,但applications/__init__.py中仅初始化了app实例,没有定义db对象,触发导入错误时,路由装饰器@app.route不会执行,访问对应路径自然返回404。 - 可选:启动路径错误也会触发该问题,需要在根目录(与根目录
app.py同级的目录)启动服务,避免模块导入异常。
修复方案
- 若暂未使用数据库功能,先删除
routes.py中多余的db导入:
from flask import render_template, request, redirect, url_for # 仅导入已初始化的app实例 from applications import app @app.route('/') @app.route('/home') def home(): return "hi"
- 若需要使用数据库,先在
applications/__init__.py中完成db初始化,再导入路由:
from flask import Flask, request from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) # 配置数据库连接参数 app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db' # 初始化db对象 db = SQLAlchemy(app) # 务必放在db初始化之后再导入路由,避免导入错误 from applications import routes
- 服务启动方式:在根目录下执行
python app.py,启动后访问http://127.0.0.1:5000或http://127.0.0.1:5000/home即可正常返回内容。
内容的提问来源于stack exchange,提问作者Chayakay
相关产品推荐
相关产品推荐

