在Python中动态绑定数据

在Python中动态绑定数据,python,flask,highcharts,Python,Flask,Highcharts,我试图通过使用Flask/Python从后端传递数据,将数据加载到highcharts中。我如何才能做得更好,而不是像现在这样传递每个值。这使得更改代码非常困难。我尝试使用for in-loop,但没有成功,任何建议都将不胜感激。先谢谢你 var barChartData = [ {% for item in bar_values %} "{{item|safe}}",

我试图通过使用Flask/Python从后端传递数据,将数据加载到highcharts中。我如何才能做得更好,而不是像现在这样传递每个值。这使得更改代码非常困难。我尝试使用for in-loop,但没有成功,任何建议都将不胜感激。先谢谢你

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才能工作。是的,它确实需要一些预处理。但是通过这种方式设置它,虽然一开始需要做更多的工作,但以后会更容易更改和维护。