在Python中动态绑定数据
我试图通过使用Flask/Python从后端传递数据,将数据加载到highcharts中。我如何才能做得更好,而不是像现在这样传递每个值。这使得更改代码非常困难。我尝试使用for in-loop,但没有成功,任何建议都将不胜感激。先谢谢你在Python中动态绑定数据,python,flask,highcharts,Python,Flask,Highcharts,我试图通过使用Flask/Python从后端传递数据,将数据加载到highcharts中。我如何才能做得更好,而不是像现在这样传递每个值。这使得更改代码非常困难。我尝试使用for in-loop,但没有成功,任何建议都将不胜感激。先谢谢你 var barChartData = [ {% for item in bar_values %} "{{item|safe}}",
var barChartData = [
{% for item in bar_values %}
"{{item|safe}}",
{% endfor %}
];
var barChartLabels = [
{% for item in bar_labels %}
"{{item|safe}}",
{% endfor %}
];
Highcharts.chart('statInfo', {
chart: {
type: 'column',
},
title: {
text: 'Statistical Class'
},
xAxis: {
type: 'category',
labels: {
rotation: -45,
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: 'No. of People'
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: 'Count: <b>{point.y:.1f} </b>'
},
series: [{
name: 'Population',
data: [
[barChartLabels[0], parseInt(barChartData[0])],
[barChartLabels[1], parseInt(barChartData[1])],
[barChartLabels[2], parseInt(barChartData[2])],
[barChartLabels[3], parseInt(barChartData[3])],
[barChartLabels[4], parseInt(barChartData[4])],
[barChartLabels[5], parseInt(barChartData[5])],
[barChartLabels[6], parseInt(barChartData[6])],
[barChartLabels[7], parseInt(barChartData[7])],
[barChartLabels[8], parseInt(barChartData[8])],
[barChartLabels[9], parseInt(barChartData[9])]
],
dataLabels: {
enabled: true,
rotation: -90,
color: '#FFFFFF',
align: 'right',
format: '{point.y:.1f}', // one decimal
y: 10, // 10 pixels down from the top
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
}] });
var barChartData=[
{bar_values%}中项目的%
“{{项目|安全}}”,
{%endfor%}
];
var barChartLabels=[
{bar_标签%中的项目的百分比}
“{{项目|安全}}”,
{%endfor%}
];
Highcharts.chart('statInfo'{
图表:{
键入:“列”,
},
标题:{
课文:“统计类”
},
xAxis:{
类型:'类别',
标签:{
轮调:-45,
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
},
亚克斯:{
分:0,,
标题:{
文字:“人数”
}
},
图例:{
已启用:false
},
工具提示:{
pointFormat:'计数:{point.y:.1f}'
},
系列:[{
姓名:'人口',
数据:[
[barChartLabels[0],parseInt(barChartData[0]),
[barChartLabels[1],parseInt(barChartData[1]),
[barChartLabels[2],parseInt(barChartData[2]),
[barChartLabels[3],parseInt(barChartData[3]),
[barChartLabels[4],parseInt(barChartData[4]),
[barChartLabels[5],parseInt(barChartData[5]),
[barChartLabels[6],parseInt(barChartData[6]),
[barChartLabels[7],parseInt(barChartData[7]),
[barChartLabels[8],parseInt(barChartData[8]),
[barChartLabels[9],parseInt(barChartData[9])]
],
数据标签:{
启用:对,
轮换:-90,
颜色:“#FFFFFF”,
对齐:“右”,
格式:'{point.y:.1f}',//一位小数
y:10,//从顶部向下10像素
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
}] });
我设置Flask/highchart的方式是,我在python中有一个函数,返回highchart JSON对象。在JS中,我使用ajax接收这个JSON对象并将其绘制成图形。类似于此:感谢@ewolden的评论。这也是我决定采用的方法。我相信,这个变量需要经过预处理,highcharts才能工作。是的,它确实需要一些预处理。但是通过这种方式设置它,虽然一开始需要做更多的工作,但以后会更容易更改和维护。