使用JSON将数据从Django传递到amchart JS

2024-10-01 17:42:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将数据从Django视图传递到html,然后将数据带到chart js或直接将数据传递到amchart。在

视图.py:

def nodo_detail(request,nodo_id):
El_Nodo = Nodo.objects.get(pk=nodo_id)
all_nodos = Nodo.objects.order_by('pk').all()
var = Variable()
v = dir(var)
elemento = El_Nodo.variable_set.order_by('pk').all()
watts = elemento.last().Watts
prefix = ''
chartData = "["

for t in elemento:
    chartData += prefix
    chartData += "{\n"
    chartData += "                      date: "
    chartData += '"' + str(t.Data_time.year) + "-"
    chartData += str(t.Data_time.month) + "-"
    chartData += str(t.Data_time.day) + " "
    chartData += str(t.Data_time.hour) + ":"
    chartData += str(t.Data_time.minute) + ":"
    chartData += str(t.Data_time.second) + '"' + ",\n"
    chartData += "                  value:"
    chartData += str(t.Watts) + ",\n"
    chartData += "                  volume: "
    chartData += str(t.Watts) + "\n                      }"
    prefix = ", "
chartData += "]"

context = {'El_Nodo': El_Nodo,
           'all_nodos': all_nodos,
           'v': v,
           'watts': watts,
           'chartData':chartData,
           "asdf":json.dumps(chartData)}
return render(request, 'inicio/detail.html', context)

我要传递的数据是chartData,在for循环中,我尝试使用JSON格式,也尝试使用JSON python库。在

详细信息.html:

^{pr2}$

amchartjs:

var chartData = JSON.parse(document.getElementById("stock").value);
 // or directly 
var chartData = JSON.parse('{{ chartData }}');//or asdf

我明白用这种方式有必要刷新整个网页来查看新的数据,还想知道如何动态地做它?谢谢,对不起,英语不好


Tags: 数据jsondatatimevarhtmlallel
1条回答
网友
1楼 · 发布于 2024-10-01 17:42:33

进行一个AJAX调用,返回一个数组,然后用JavaScript填充这个数组。这意味着要创建一个返回JSON数组的JSON视图。像这样:

class QueryResultsView(generic.TemplateView):

    template_name='your_template.html'

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(QueryResultsView, self).get_context_data(**kwargs)
        # Create a variable you fill
        context['my_big_sql'] = MyModel.objects.filter(blabla=blibli)
        return context

然后,在模板文件(这是您的模板文件,而不是JavaScript文件)general_study_results.html添加如下内容:

^{pr2}$

然后您就可以通过amchartjs或任何你想要的库来使用HTML文件中的所有数据。在

相关问题 更多 >

    热门问题