Я делаю проект для университета, где я получаю данные из твиттера и создаю некоторые графики, которые затем отображаю на html с помощью Flask. Графики создаются с помощью matplot, а затем я сохраняю их как изображения .png. Каждый раз, когда пользователь обновляет веб-страницу, данные также обновляют свою полку, поэтому график генерируется снова. Моя проблема в том, что единственным способом отображения изображения было создание статической папки, и таким образом изображение не обновляется, когда это делает локальная папка. Я хотел узнать, как можно изменить изображение при обновлении страницы.
Это мое приложение для колб
app = Flask(__name__)
labels = ["Postive", "Negative", "Neutral"]
colors = ["#00ff7f", "#d80000", "#00008B"]
@app.route("/pie")
def chart():
negative, positive, neutral = get_data("China")
values = [positive, negative, neutral]
pie_labels = labels
pie_values = values
return render_template('pie_chart.html', image="static/images/locations.png",title='Positive and Negative', max=1700, set=zip(values, labels, colors))
if __name__ == "__main__":
app.run()
И это HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>{{ title }}</title>
<script src='https://cdnjs.cloudflare.com/ajax/libs/Chart.js/1.0.2/Chart.min.js'></script>
</head>
<body>
<h1>{{ title }}</h1>
<canvas id="chart" width="600" height="400"></canvas>
<script>
var pieData = [
{% for item, label, colors in set %}
{
value: {{item}},
label: "{{label}}",
color : "{{colors}}"
},
{% endfor %}
];
// get bar chart canvas
var mychart = document.getElementById("chart").getContext("2d");
steps = 10
max = {{ max }}
// draw pie chart
new Chart(document.getElementById("chart").getContext("2d")).Pie(pieData);
</script>
<img src="{{ image }}">
</body>
</html>
Здесь, как я уже сказал, было показано, как показать изображение на веб-странице и обновлять его каждый раз, когда обновляются данные (обновление).