python – 使用Django将数据传递到Google Charts
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 使用Django将数据传递到Google Charts,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1578字,纯文字阅读大概需要3分钟。
内容图文
这个问题已被提出但没有得到像这样的one回答.
在我的view.py中我从MySQL中提取数据,例如数组:
(Decimal('13'), Decimal('6'), Decimal('13'))
(Decimal('207'), Decimal('18'), Decimal('129'))
(Decimal('301'), Decimal('38'), Decimal('193'))
(Decimal('204'), Decimal('32'), Decimal('150'))
(Decimal('159'), Decimal('25'), Decimal('88'))
args = {'array':array}
return render_to_response('page2.html', args)
试图把它放入谷歌图表
function drawChart() {
var djangoData = JSON.parse('{{ args }}');
var data = google.visualization.arrayToDataTable(djangoData);
还尝试了var djangoData = {{array}};
两个都没有运气!
EDIT1
建议
return render_to_response('page2.html', {'array': json.dumps(array)})
看起来它会起作用,除了db产生不兼容的类型.有没有办法在不将每个项目转换为int类型的情况下执行此操作.或者,如果有一种pythonic方式转换它?
编辑 – 解决方案
使用选定的答案并向数组添加| safe,所以{{array | safe}}
解决方法:
你应该在view.py中尝试这个(不要忘记添加import json):
array = [['X', 'Y', 'Z'], [1, 2, 3], [4, 5, 6]]
return render_to_response('page2.html', {'array': json.dumps(array)})
然后在模板中使用不带引号的原始值数组:
var djangoData = {{ array|safe }};
var data = google.visualization.arrayToDataTable(djangoData);
编辑:使用自定义JSONEncoder来处理从this question被盗的Decimal类型:
class DecimalEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, decimal.Decimal):
return float(o)
return super(DecimalEncoder, self).default(o)
然后在视图中:
array = [['X', 'Y', 'Z'], [Decimal('1'), Decimal('2'), Decimal('3')]]
return render_to_response('page2.html', {
'array': json.dumps(array, cls=DecimalEncoder),
})
内容总结
以上是互联网集市为您收集整理的python – 使用Django将数据传递到Google Charts全部内容,希望文章能够帮你解决python – 使用Django将数据传递到Google Charts所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。