Фон:Я начинаю с Django и имею ограниченный опыт работы с Python, поэтому, пожалуйста, поддержите меня. Я написал скрипт Python, который периодически запускается (в задании cron )для хранения данных в базе данных SQLite3, из которой я хотел бы читать и генерировать изображения с помощью Matplotlib (, точнее, с помощью Basemap. ). Это началось как интерес к изучению Python и созданию достаточно «интересного» проекта. Я выбираю фреймворк Django, потому что он достаточно -хорошо документирован,хотя я был приятно удивлен web.py из-за его «легкости» в своих требованиях (, но скудная документация web.py затрудняет начало работы с ); но на данный момент я еще не совсем умер -на каркасе.
Пример в вопрос 1874642 - это почти то, что я ищу, с изображением, генерируемым на -мухе -без необходимости записи его на диск (и, следовательно, иметь дело с периодической очисткой сгенерированных файлов ).
Однако мне непонятно, как сгенерированное изображение может быть включено в шаблон, вместо того, чтобы браузер просто показывал изображение. Из учебного материала я предполагаю, что должна быть возможность представить переменные, включенные в некоторые django.template.Context
, в django.http.HttpResponse
, но указанный пример сокращает это, отвечая непосредственно с объектом Mime вместо создания его с помощью контекста..
Так что я прошу:
Нужно ли вызывать print_png
для сгенерированного объекта Matplotlib FigureCanvas
? Или FigureCanvas
копируется «ненапечатано» в контекст, поэтому в шаблоне Django я явно пишу тег HTML img
и вручную помещаю атрибуты тега?
У меня сложилось впечатление, что мне нужно записать Canvas на диск (, т.е. выполнитьcanvas.print_figure("image.png")
), чтобы HTML-тег img
увидел его в шаблоне Django. Но я хочу быть уверен, что не существует «более управляемого способа» --, то есть передачи изображения в Context
и создания шаблона «волшебным образом». Если запись на диск действительно необходима, я полагаю, я мог бы использовать средство кэширования файловой системы Django для записи сгенерированных изображений каким-то образом (, проверяя, конечно, было ли уже записано изображение для заданного набора входных параметров ). Я приветствую ваши предложения по этому поводу, поскольку в настоящее время еще не ясно размер и количество изображений, которые будут созданы,поэтому я стараюсь не тратить дисковое пространство и вместо этого предпочитаю ждать, пока будет сгенерировано изображение (, даже если это займет несколько секунд ).
Заранее спасибо.