Python Matplotlib:未使用新的figsave()刷新图像

Python Matplotlib:未使用新的figsave()刷新图像,python,matplotlib,Python,Matplotlib,My函数调用Matplotlib,根据用户输入的日期创建并保存地物 我在静态文件夹中保存一个新图形,如下所示: plt.savefig('insights/static/chart.png') return render_template("chart.html") <img src="/static/chart.png"> 我的模板调用的图如下所示: plt.savefig('insights/static/chart.png') return render_template(

My函数调用Matplotlib,根据用户输入的日期创建并保存地物

我在静态文件夹中保存一个新图形,如下所示:

plt.savefig('insights/static/chart.png')
return render_template("chart.html")
<img src="/static/chart.png">
我的模板调用的图如下所示:

plt.savefig('insights/static/chart.png')
return render_template("chart.html")
<img src="/static/chart.png">

当用户输入新日期时,Matplotlib将创建一个新地物,该地物将替代静态中的现有地物文件。服务器上的图形已更新,但“我的模板”中显示的图像未更新。要更新新图形,我需要保存模板


我想我在缓存方面有问题。。。有人能提出一个解决方案吗?

我认为有很多解决方案可以强制浏览器刷新图像或完整的页面内容

一些人使用JavaScript,但其他人不使用。这两个主要概念是:

  • 每次使用不同的文件名或使用GET变量(
    ?var=…
  • 设置HTML元标记以防止缓存

  • 在图像名称中使用日期和时间-并将此名称发送到模板。或者至少尝试一下
    src=“/static/chart.png?var=some_random_value”
    ,浏览器应该将此名称视为新文件。我是否缺少一些框架上下文?模板、缓存、静态文件夹…背景是什么?服务器将
    src=“/static/chart.png?var=some_random\u value”
    视为
    src=“/static/chart.png”
    (它什么也不改变),但对于浏览器来说,它是不同的链接(不同的文件),缓存中没有-因此它必须再次下载。它工作了,但只在第一轮中。。。我想我需要在模板中生成一个随机数。我可以不用javascript吗?非常感谢。我通过你提到的一些例子找到了如何做到这一点。我决定使用时间戳命名我的文件:
    timestr=time.strftime(“%Y%m%d-%H%m%S”)plt.savefig('insights/static/charts/'+timestr+'.png')返回渲染模板(“chart.html”,timestr=timestr)