Flask中app.route路由与render_template不生效代码修改无更新问题
核心原因
你遇到的所有问题本质是当前你访问的Flask服务,并不是你修改后的代码启动的服务,要么是旧的Flask进程一直占用端口没有退出,你新代码启动时端口被占启动失败,访问的一直是旧进程的内容;要么是浏览器缓存了旧的页面资源,导致你看不到更新。
解决步骤
- 第一步:杀掉所有占用Flask默认端口(通常为5000)的进程,避免旧进程残留
- Windows系统:打开命令提示符执行
netstat -ano | findstr :5000,得到占用端口的进程PID,再执行taskkill /PID 对应PID号 /F强制结束进程,也可以直接打开任务管理器关闭所有python.exe进程 - Mac/Linux系统:终端执行
lsof -i:5000得到占用端口的进程PID,再执行kill -9 对应PID号强制结束进程
- Windows系统:打开命令提示符执行
- 第二步:确认你运行的代码文件就是正在编辑的文件,避免存在多个同名py文件,误运行了其他目录下的旧版本代码。可以在代码开头加一行
print("当前代码已启动"),启动时看终端有没有对应输出,确认运行的是最新代码 - 第三步:清理浏览器缓存,访问页面时按
Ctrl+F5(Windows)/Cmd+Shift+R(Mac)强制刷新,也可以直接用浏览器无痕模式测试,避免本地缓存的旧页面干扰 - 第四步:如果需要修改模板后实时生效,可以在代码中
app = Flask(__name__)后面新增两行配置,强制禁用模板缓存:
app.config['TEMPLATES_AUTO_RELOAD'] = True app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
完成以上操作后重新启动Flask服务,先访问根路径/确认返回"Hello World",说明新代码已经生效,再测试/aksh和/about路由即可。
内容的提问来源于stack exchange,提问作者Akshat Jain
相关产品推荐
相关产品推荐

