Я пытаюсь отобразить облако слов, которое можно запустить на моем компьютере без колбы.
Я использую этот вопрос в качестве основы
Маршрут
@app.route('/wordcloud/<vendor_duns>')
def images(vendor_duns):
words = Words.query.filter(Words.vendor_duns == vendor_duns).with_entities(Words.words).all()
# t = [r.__dict__ for r in words]
# print(t)
one_row = list(itertools.chain.from_iterable(words))
text = ' '.join(one_row)
return render_template("wordcloud.html", text=text)
@app.route('/fig/<vendor_duns>')
def fig(vendor_duns):
# TODO add test model and query
words = Words.query.filter(Words.vendor_duns == vendor_duns).with_entities(Words.words).all()
one_row = list(itertools.chain.from_iterable(words))
text = ' '.join(one_row)
wordcloud = WordCloud().generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
img = BytesIO()
plt.savefig(img)
img.seek(0)
return send_file(img, mimetype='image/png')
Template
{% extends "base.html" %}
{% block title %}Wordcloud{% endblock %}
{% block content %}
{{text}}
<div>
<img src="{{ url_for('sam.fig', vendor_duns=vendor_duns) }}" alt="Image Placeholder" height="100">
</div>
{% endblock %}
Прежде всего {{text}}
в шаблоне только для просмотра. Если я перейду к определенному vendor_duns, я получу длинную строку текста, но без изображения.
Итак, два вопроса, где именно мне нужно выполнить запрос? в fig
или изображении function
.
Второй вопрос, я получаю пустое изображение, поэтому я точно не знаю, как записать облако слов в буфер.