Передача массива в Python в шаблон Django - PullRequest
0 голосов
/ 12 августа 2011

Допустим, у меня был массив в бэкэнде Python, и я хотел передать его во внешний интерфейс в виде массива json или js.Как бы я мог сделать это, используя платформу Django?

Вот как может выглядеть шаблон:

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

Ответы [ 5 ]

3 голосов
/ 22 мая 2012

Я пытаюсь ответить, но думаю, что работа, которую я сделал, была такой:

в 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))

А в примере .html

...
<script type="text/javascript">
        var myvar = "{{ myvar|safe }}";
</script>
...
2 голосов
/ 26 января 2013

В Джанго:
из django.utils import simplejson
json = simplejson.dumps (YOUR_VARIABLE)

И ПРОЙДИТЕ "JSON" В КОНТЕКСТЕ

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

1 голос
/ 12 августа 2011

Полный просмотр, чтобы вы поняли:

</p> <pre><code>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})

0 голосов
/ 12 августа 2011

На ваш взгляд:

js_variable = simplejson.dumps(django_variable)

и передайте js_variable вашему шаблону обычным способом.

0 голосов
/ 12 августа 2011

Возможно, вам следует прочитать руководство по django о том, как передавать переменные из python в шаблон.

НО

Если ваш список 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)})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...