繁体   English   中英

从Django到Javascript的Python数据

[英]Python data from Django to Javascript

我正忙于Django应用程序,该应用程序分析各种数据(主要使用熊猫),然后使用Google图表显示结果。

我在找出最好的方式从django view.py中传递我的数据时遇到麻烦,该视图通常在Pandas数据框或dict中通过,以便在模板文件中使用(使用javascript用于google图表)。

这是一些代码,显示了用于显示图表之一的javascript函数。 在此示例中,我已将数据硬编码到图表中(即:年和销售额已手动输入)。 但是,需要做的是改为使用熊猫数据框中的数据。

function drawChart() {

    var data = google.visualization.arrayToDataTable([
        ['Year', 'Sales'],
        ['2004',  1000],
        ['2005',  1170],
        ['2006',  660],
        ['2007',  1030]
    ]);

    var options = {
        title: 'Company Performance',
        hAxis: {title: 'Year', titleTextStyle: {color: 'red'}}
    };

    var chart = new google.visualization.ColumnChart(document.getElementById('chart_div'));
    chart.draw(data, options);
    }

使用Django模板语言{{var}}可以很容易地传递单个变量甚至列表。 但是,我不能完全确定如何在JavaScript函数中使用更复杂的数据帧,字典等。

非常感谢。

这是你想要的吗?

views.py:

import json

def some_view_func(request):
    data = [
        ['Year', 'Sales'],
        ['2004',  1000],
        ['2005',  1170],
        ['2006',  660],
        ['2007',  1030]
    ]
    render(request, 'template.html', {'data': json.dumps(data)})

template.html

<script>
    var data = google.visualization.arrayToDataTable(JSON.parse({{data}}));
</script>

这是实现我认为想要的方式

def view_func(request):
    data =pd.DataFrame(np.random.randn(20, 5)) 

    render(request, 'template.html', {'data': data.to_html()})

有关CSS样式和其他内容的更多详细信息,请参见文档

还可以在模板中将数据实现为“安全”,如下所示:

{{ data | safe }}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM