使用Axios访问/api/data遇404错误,请求排查解决方法
解决Flask /api/data接口404错误的排查方案
1. 确认路由是否被正确注册到Flask应用
- 检查
create_app()工厂函数的实现,很多时候工厂模式下路由没绑定到生成的app实例上。试试把路由直接写到create_app内部:
def create_app(): app = Flask(__name__) # 这里放数据库配置、蓝图注册等原有代码 @app.route('/api/data', methods=['GET']) def get_data(): # 临时替换为固定数据测试,排除数据库问题 return jsonify([{'test': 'sample data'}]) return app
- 启动应用时,确保
FLASK_APP环境变量指向正确文件,比如执行export FLASK_APP=routes.py(Linux/macOS)或set FLASK_APP=routes.py(Windows),再用flask run --port=5000启动。
2. 严格匹配请求URL
- Flask路由大小写敏感,必须用
http://localhost:5000/api/data,别写成API/data这类大写路径。 - 直接在浏览器地址栏输入完整URL测试,排除前端Axios的配置干扰。
3. 验证应用启动状态
- 启动Flask后看控制台输出,确认没有导入错误、数据库连接失败等异常,这些会导致路由无法加载。
- 加个简单测试路由:
@app.route('/test') def test(): return "OK"
访问http://localhost:5000/test,如果也404,说明应用本身没正确启动,重点检查启动命令和文件路径。
4. 排查数据库相关问题
- 若路由能返回固定JSON,但查数据库时出问题,先检查
Insight模型是否和数据库表结构匹配,以及数据库连接配置是否正确。 - 可以先注释数据库查询代码,用固定JSON验证路由正常后,再逐步恢复查询逻辑排查。
内容的提问来源于stack exchange,提问作者Abhinav Singh
相关产品推荐
相关产品推荐

