Джанго - временно хранит фигуры - PullRequest
0 голосов
/ 16 мая 2018

У меня есть база данных с данными о населении. Я хочу создать страницу, которая показывает рисунок этих данных (например, с 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')

Вопрос в том, где / как я могу сохранить это и представить его пользователю? Должен ли я хранить это в каталоге СМИ? Я не хочу хранить этот файл вечно, потому что дисковое пространство быстро заполнится графиками, которые используются только один раз.

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

У вас есть несколько вариантов:

Один из них - хранить рисунки в определенной папке внутри статической папки, которую вы настроили. (Имейте в виду, что у django есть хорошее решение для общедоступных ресурсов, и вы можете настроить свой веб-сервер для непосредственного обслуживания этих файлов).
Посмотрите на этот вопрос об обслуживании этих файлов с помощью nginx.

Наличие этого конфига в settings.py:

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

Возможно получить доступ к файлам, хранящимся в:

/static/figures

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

Если этого недостаточно, воспользуйтесь любым провайдером Object Storage, здесь их несколько:

Ознакомьтесь с этой документацией django по развертыванию статических файлов. Это очень полезно.

0 голосов
/ 16 мая 2018

Попробуйте сохранить изображения в кеше.Посмотрите на django-sorl-thumbnail , чтобы узнать, как это сделать.

...