You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flask主文件定义app对象并全局使用?路由失效问题排查

Flask app对象复用但路由失效的原因及解决方法

问题原因

当你运行main.py时,程序仅执行该文件内的代码,并未触发routes.py的执行逻辑。routes.py中的@app.route装饰器只有在模块被导入时才会运行,从而将路由注册到app对象上。但失效场景里main.py没有导入routes模块,导致路由从未被注册,自然无法正常访问。

解决方案

在main.py中导入routes模块,确保路由注册代码被执行。修改后的代码如下:

main.py

from flask import Flask
app = Flask(__name__)

# 导入routes模块,触发路由注册逻辑
import routes

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

routes.py(无需修改)

from main import app

@app.route("/", methods = ["GET"])
def home():    
        return "hi"

运行修改后的main.py时,会先导入routes模块,此时@app.route装饰器会将home路由注册到app对象上,启动服务后即可正常访问该路由。如果后续新增其他路由模块,同样需要在main.py中导入,确保所有路由都注册到同一个app对象上。

内容的提问来源于stack exchange,提问作者myquest5 sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 13:41:12