使用flask render_template在前端制作高光图

时间:2014-03-24 21:03:00

标签: javascript jquery python-2.7 highcharts flask

我有一个简单的python方法,它将生成一个highcharts json

@app.route('/make/a/chart')
def make_chart():
  data = get_data()
  c = Counter
  for each in data:
    c['AGE'] += 1

  highchart_json = {
    'chart': {
      'type': 'column'
    }
    'title': {
      'text': 'arranged by age'
    }
    'x-axis': {
      'categories': [x for x in c]
    }
    'series': {
      'name': 'Groups By Age',
      'data': [c[x] for x in c]
    }
  }
  return render_template('some_template.html', json=highchart_json)

是否可以使用模板进行渲染,或者是通过jsonifying将其变为高级图并将其发送到前端的唯一真实方式?

1 个答案:

答案 0 :(得分:5)

您可以将JSON作为Javascript结构放入模板中:

<script type="text/javascript">
    var chart_data = {{ highchart_json|tojson|safe }};
</script>

然后您可以在JS代码中使用此客户端。毕竟,JSON是JavaScript的一个子集,或者至少是Python json模块生成的JSON。

这使用Flask tojson filter,它生成 HTML安全 JSON值;使用JSON \uxxxx转义码为您转义任何HTML元字符。