Как вывести графики из matplotlib в html-шаблон в фляге на сервере Ubuntu? - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь настроить побочный проект на DigitalOcean, и я использую git framework из https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-xvii-deployment-on-linux, чтобы начать.

В этой структуре я добавил код в один из маршрутов колб (/ исследовать), в котором я генерирую график с помощью matplotlib, и я хочу вернуть этот график как объект, когда я отображаю шаблон какфункция возврата этого маршрута.Мне не нужно сохранять график, если его можно отправить в шаблон без этого (например, с помощью io.BytesIO ()), но мне не удалось получить правильный синтаксис, чтобы использовать этот подход, и получить график для визуализациив полученном шаблоне.

Хотя мои попытки с io.BytesIO () были безуспешными, если это поможет вывести результаты с таким подходом, пожалуйста, дайте мне знать, как лучше всего его использовать, и я попытаюсь запустить этот код сПредлагаемые изменения и отчет о результатах.

Заранее спасибо!

Я попытался сохранить файл и отправить его в шаблон, а также отправить данные файла через BytesIO (), но ни один из подходов не сработал для меня.

Ниже приведена моя попытка сохранить файл в статический каталог и отправить изображение в шаблон, но решение, которое работает в этой среде с io.BytesIO () илианалогично без сохранения файла было бы еще лучше.

Вот код, который я добавил к маршруту исследования в /app/main/routes.py, чтобы сохранить изображение графика в статическом каталоге и вернуть путь кшаблон:

new_graph_name = url_for('static', filename='tmp_png.png')

plt.savefig(new_graph_name)

return render_template('index.html', url=new_graph_name)

Вот код, который я добавил в шаблон index.html:

{% if url %}

    <img src={{ url }} alt="Chart" height="42" width="42" />

{% endif %}

1 Ответ

0 голосов
/ 18 апреля 2019

С точки зрения сохранения графика и последующего его отображения, не могли бы вы попробовать что-то похожее на приведенный ниже код?Недавно это сработало для меня.

В маршрутахпробовал что-то подобное раньше:

В маршрутахпеременная

...