Форум сайта python.su
Помогите построить диаграмму!
Вводные даные:
Есть веб приложение на Flask с БД в которой есть таблица из трех колонок:
class Pnh(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(100), nullable=False)
date = db.Column(db.DateTime, default=datetime.utcnow)
new Chart(ctx, {
type: 'bar',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: '# of Votes',
data: amount_chart ,
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
@app.route('/chart')
def chart():
amount_titles = db.session.query(db.func.count(Pnh.title).filter(extract('year', Pnh.date) == 2023).filter(extract('month', Pnh.date) == 1)).all()
amount_chart = []
for x, in amount_titles:
amount_chart.append(x)
return render_template('chart.html', amount = json.dumps(amount_chart))
amount_titles = db.session.query(db.func.count(Pnh.title).filter(extract('year', Pnh.date) == 2023).filter(extract('month', Pnh.date) == 1)).all()
{% extends 'base.html' %}
{% block title %}
График
{% endblock %}
{% block body %}
<div class="container">
<canvas id="myChart"></canvas>
</div>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
let amount_chart = JSON.parse({{ amount | tojson }});
const ctx = document.getElementById('myChart');
new Chart(ctx, {
type: 'bar',
data: {
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
datasets: [{
label: '# of Votes',
data: amount_chart ,
borderWidth: 1
}]
},
options: {
scales: {
y: {
beginAtZero: true
}
}
}
});
</script>
{% endblock %}
Отредактировано Vitek64 (Сен. 10, 2023 23:58:22)
Офлайн
Vitek64Диаграмма вот такая. Мне удалось получить только один месяц:
Помогите построить диаграмму!Вводные даные: Есть веб приложение на Flask с БД в которой есть таблица из трех колонок:
Отредактировано Vitek64 (Сен. 11, 2023 00:00:15)
Прикреплённый файлы:
Screenshot_20230910-152208_Chrome.jpg (61,1 KБ)
Офлайн