python – 使用Django将数据传递到Google Charts

python – 使用Django将数据传递到Google Charts,第1张

概述这个问题已被提出但没有得到像这样的 one回答. 在我的view.py中我从MySQL中提取数据,例如数组: (Decimal('13'), Decimal('6'), Decimal('13'))(Decimal('207'), Decimal('18'), Decimal('129'))(Decimal('301'), Decimal('38'), Decimal('193'))(Dec 这个问题已被提出但没有得到像这样的 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',[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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1193006.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存