2011-08-12 20 views
0

のは、私はPythonのバックエンドでの配列を持っていたし、JSONやJSの配列としてフロントエンドにそれを渡したいとしましょう。私はDjangoフレームワークを使ってどのようにこれを行うことができますか?たぶん、あなたはテンプレートにのpythonから変数を渡す方法についてはDjangoのチュートリアルをお読みくださいDjangoテンプレートにPythonで配列を渡す

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

答えて

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

+0

1。彼らは本当に便利です。私はより多くのそれらを使用する必要があります。 –

+0

笑私は実際に前にそれらを使用したことがありません。私はただのためのDjangoのドキュメントのぞんざいな検索をしました「JSONエンコード」。私は私が最初ジャンゴについて研究したときにそれらについての学習を覚えて –

+0

。Djangoはおそらく物事のファンシーな方法を持っていた考え出し。しかし、それら以来、私はいつも私たちそのような必要性のために、単純なjsonや "str"もあります。 –

0

これは、テンプレートがどのようなものであるかです。

しかし

あなたのpythonのリストには、番号のリストである場合、あなたはすでにお使いのテンプレートで使用するにはjavascript配列であろうと、それにstrまたはモジュールのsimplejsonを使用することができます。例えば

:あなたのviews.pyで

:あなたのビューで

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

2.6+、標準モジュールのJSONは、単純なJSON –

0

js_variable = simplejson.dumps(django_variable) 

、通常の方法であなたのテンプレートにを渡します。

+0

とまったく同じである私はそれを試してみましたが、「"に翻訳されています[" microones "、"通常"、"大"、XL " "] Djangoのシリアライザを使用する代わりに、[「microones」、... – danihp

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> 
... 
ジャンゴで
2


django.utilsから
JSON = simplejson.dumps(YOUR_VARIABLE)

のsimplejsonインポートおよびJS INコンテキストで

を "JSONを" PASS:
VAR YOUR_JS_OBJECT = {{json | safe}}; Pythonで実際に

関連する問題