【问题标题】:Matplotlib image to show on Flask app hosted in HerokuMatplotlib 图像显示在 Heroku 中托管的 Flask 应用程序上
【发布时间】:2020-02-29 18:51:13
【问题描述】:

我正在尝试制作一个 Flask 应用并将其托管在 Heroku 上。

当点击“生成”按钮时,该应用会获取一些文本和数字数据、执行计算并显示图表。它将 Matplotlib 生成的图存储在一个名为“/static”的文件夹中。 现在,在 Heroku 上,不允许使用名为“/static”的文件夹名称,并且不起作用。但是在看了几个地方之后,我尝试使用'/tmp',这也不起作用。

下图是我得到的。

这是处理文件生成的代码:

    if not os.path.isdir('tmp'):
        os.mkdir('tmp')
    else:
        # Remove old plot files
        for filename in glob.glob(os.path.join('tmp', '*.png')):
            os.remove(filename)
    # Use time since Jan 1, 1970 in filename in order make
    # a unique filename that the browser has not chached
    plotfile = os.path.join('tmp', 'matgenimage'+'.png')
    plt.savefig(plotfile)
    return plotfile

完整的 Flask 应用的代码在这里:

https://github.com/cae-live/cae-sandbox/

【问题讨论】:

标签: python matplotlib flask heroku


【解决方案1】:

完成!

这个视频 -> https://www.youtube.com/watch?v=vgSFm3wM6g4 和这个存储库-> https://github.com/marquitobb/flask_graficas 让我完全清楚。需要使用 BytesIO 和 base64 在同一个请求中传递图像。

【讨论】:

  • 如何使用相同的功能来提供 csv 文件?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2013-05-25
  • 2014-02-08
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 2017-08-18
相关资源
最近更新 更多