django - 临时存储数字

Posted

技术标签:

【中文标题】django - 临时存储数字【英文标题】:django - temporarily storing figures 【发布时间】:2018-10-26 10:45:55 【问题描述】:

我有一个包含人口数据的数据库。我想创建一个显示此数据图形的页面(例如 matplotlib)。我将如何以及在哪里存储我使用 matplotlib 创建的图形?

示例数据:

year | people
2010 | 100
2011 | 110
2012 | 110
2013 | 114
2014 | 124
2015 | 154
2016 | 143
2017 | 112

在我看来,我已经收集了变量、年份和人员。我通常会这样做:

plt.plot(year, people)
plt.savefig('figure.svg')

问题是我将在哪里/如何存储它并将其呈现给用户?我应该将其存储在媒体目录中吗?我不想永远存储文件,因为这样磁盘空间会很快被只使用一次的图表填满。

【问题讨论】:

您可以将 matplotlib 与 django ***.com/questions/30531990/… 一起使用。无论如何,为什么不将它存储在数据库中 【参考方案1】:

您有多种选择:

一种是将图形存储在您配置的静态文件夹内的特定文件夹下。 (请记住,django 为公共资产提供了一个很好的解决方案,您可以配置您的网络服务器以直接提供这些文件)。 看看this question about serving these files using nginx.

在 settings.py 中有这个配置:

STATIC_ROOT = os.path.dirname(BASE_DIR) + '/static/'

可以访问存储在以下位置的文件:

/static/figures

http://your.domain.com/static/figures/figure.svg

如果这还不够,请使用任何对象存储提供程序,这里很少:

亚马逊S3 梦想主机 objects 机架空间cloud files

查看this django 关于静态文件部署的文档。很有帮助。

【讨论】:

【参考方案2】:

尝试将图像保存在缓存中。查看django-sorl-thumbnail 了解如何尝试。

【讨论】:

以上是关于django - 临时存储数字的主要内容,如果未能解决你的问题,请参考以下文章

Django - 在模板的for循环中迭代数字

hstore或json数据的Django数字比较?

如何限制 Django 模型中数值字段的最大值?

两个数字交换(不使用临时变量)

在 oracle 临时表中插入 1000 多个长数字

django 动态生成CSV文件