Flask应用登录页面/模板不更新,修改路由返回值也不生效怎么办?
排查解决步骤
- 优先排查浏览器缓存:按
Ctrl+F5(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面,也可以直接开浏览器无痕模式访问/login地址,测试是否还返回旧内容。也可以打开浏览器开发者工具的「网络」面板,勾选「禁用缓存」后再刷新。 - 排查是否有旧的Flask进程仍在运行:很多时候后台残留了之前启动的旧服务进程,占用了对应端口,你修改代码后重启的服务根本没正常跑起来。Windows可以打开任务管理器,结束所有python相关进程;Linux/Mac可以执行
ps aux | grep python找到对应Flask进程的PID,执行kill -9 进程ID清理后重新启动服务。 - 检查Flask是否开启了自动重载:如果没开启DEBUG模式,Flask默认不会监听代码变更自动重载,你修改代码后必须手动重启服务才会生效。可以在启动app时设置
debug=True,即app.run(debug=True),后续修改代码会自动重启服务。 - 确认路由是否被正确命中:在main.py的
app.run()之前添加代码print(app.url_map),启动服务后查看控制台输出的路由表中,/login对应的处理函数是否是authPages.login。也可以在你的login视图函数里加一行控制台打印逻辑,比如print("login视图被调用"),访问/login时如果控制台没有对应输出,说明当前请求根本没有走到你写的这个视图里,大概率是有其他同名路由或者静态文件覆盖了路由。 - 排查代理/CDN缓存问题:如果你是部署在服务器上,前面挂了Nginx、CDN之类的代理服务,需要清理代理层的缓存,确认代理转发的是最新启动的Flask服务实例。
内容的提问来源于stack exchange,提问作者Charles Yang
相关产品推荐
相关产品推荐

