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

cor*_*vid 2 javascript jquery highcharts flask python-2.7

我有一个简单的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)
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ers 5

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

<script type="text/javascript">
    var chart_data = {{ highchart_json|tojson|safe }};
</script>
Run Code Online (Sandbox Code Playgroud)

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

这使用Flask tojson过滤器,它生成HTML安全的 JSON值; 使用JSON \uxxxx转义码为您转义任何HTML元字符.