Flask应用点击浏览器刷新图标触发代码执行的可行性问询
解决方案:利用Flask路由的请求响应机制实现刷新触发代码执行
当然可以实现!其实浏览器点击刷新按钮的核心逻辑,就是向当前页面对应的URL重新发送一次HTTP请求——而Flask的路由处理函数本来就是为响应这类请求设计的,所以只要把你想要执行的Python代码放到对应路由的处理函数里,每次刷新页面时,这段代码就会自动运行,之后页面会返回更新后的内容,完全不用你手动去执行代码再刷新。
举个实际的例子,假设你需要每次刷新都执行一段获取系统状态的代码,再把结果展示在页面上:
from flask import Flask, render_template import psutil # 假设用这个库获取系统CPU使用率 app = Flask(__name__) @app.route('/dashboard') def dashboard(): # 这段代码会在每次刷新页面时自动执行 cpu_usage = psutil.cpu_percent(interval=1) memory_usage = psutil.virtual_memory().percent # 将执行结果传递给模板,渲染出更新后的页面 return render_template('dashboard.html', cpu=cpu_usage, memory=memory_usage) if __name__ == '__main__': app.run(debug=True)
对应的dashboard.html模板可以这样写:
<!DOCTYPE html> <html> <head> <title>系统监控面板</title> </head> <body> <h1>系统状态</h1> <p>CPU使用率:{{ cpu }}%</p> <p>内存使用率:{{ memory }}%</p> </body> </html>
当你打开http://localhost:5000/dashboard后,每次点击浏览器的刷新按钮,Flask都会重新调用dashboard()函数——里面获取CPU和内存使用率的代码会自动执行,然后页面会显示最新的监控数据。
如果你的需求是执行其他逻辑(比如更新数据库、调用外部API、读取本地文件等),只要把这些操作放到对应的路由处理函数里就行,刷新请求触发时,这些代码都会被执行。
小提示:如果你的路由原本处理的是POST请求(比如表单提交),刷新时浏览器可能会提示重新提交表单,这时候可以采用Post/Redirect/Get模式:在POST处理完成后重定向到一个GET路由,这样刷新时就只会触发GET请求,避免重复提交的问题。
内容的提问来源于stack exchange,提问作者Sukirti Sen
相关产品推荐
相关产品推荐

