将Python中的数组传递给Django模板

时间:2011-08-12 13:40:56

标签: javascript jquery python django

假设我在Python后端有一个数组,并希望将其作为json或js数组传递给前端。我怎样才能使用Django框架做到这一点?

这就是模板的样子:

<script type="text/javascript">
var array = {{djangoVariable}};
//use the array somehow
</script>

5 个答案:

答案 0 :(得分:3)

我尝试了答案,但认为我的工作就像:

在view.py

from django.shortcuts import render_to_response
from django.utils import simplejson


def example_view(request):
   variable = {"myvar":[1, 2, 3]}
   render_to_response("example.html", simplejson.dumps(variable),
            context_instance=RequestContext(request))

在example.html中

...
<script type="text/javascript">
        var myvar = "{{ myvar|safe }}";
</script>
...

答案 1 :(得分:2)

在Django中:
来自django.utils import simplejson
json = simplejson.dumps(YOUR_VARIABLE)

AND PASS“json”IN CONTEXT

IN JS:
var YOUR_JS_OBJECT = {{json | safe}};

答案 2 :(得分:1)

完整视图让您明白这一点:

from django.shortcuts import render_to_response
from django.core import serializers

def my_view(request) :
    json_data = serializers.serialize('json', my_django_object)
    render_to_response('my_template.html', {'json_data' : json_data})

from django.shortcuts import render_to_response from django.core import serializers def my_view(request) : json_data = serializers.serialize('json', my_django_object) render_to_response('my_template.html', {'json_data' : json_data})

答案 3 :(得分:0)

也许您应该阅读有关如何将变量从python传递到模板的django教程。

BUT

如果你的python列表是一个数字列表,你可以使用str或模块simplejson,它已经是你的模板中使用的javascript数组。

例如:

在你的views.py中

import simplejson
def example_view(request)
   variable = [1, 2, 3]
   return render(request, 'example.html', {'djangoVariable': simplejson.dumps(variable)})

答案 4 :(得分:0)

在您看来:

js_variable = simplejson.dumps(django_variable)

并以正常方式将js_variable传递给您的模板。