假設我在Python後端有一個數組,並且想將它作爲json或js數組傳遞到前端。我將如何使用Django框架來做到這一點?將Python中的數組傳遞給Django模板
這是模板看起來是這樣的:
<script type="text/javascript">
var array = {{djangoVariable}};
//use the array somehow
</script>
假設我在Python後端有一個數組,並且想將它作爲json或js數組傳遞到前端。我將如何使用Django框架來做到這一點?將Python中的數組傳遞給Django模板
這是模板看起來是這樣的:
<script type="text/javascript">
var array = {{djangoVariable}};
//use the array somehow
</script>
完整視圖,以便你的想法:
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})
也許你應該閱讀關於如何從蟒蛇傳遞變量到模板Django的教程。
但
如果你的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)})
事實上在python 2.6+,標準模塊JSON是完全一樣簡單的JSON –
在你看來:
js_variable = simplejson.dumps(django_variable)
,並通過到您的模板以正常方式。
我已經嘗試過了,但「被轉換爲":[" microones ","正常","大"," XL "]而不是[「microones」,... – danihp
我嘗試了答案,但認爲通過我的工作是這樣的:
在view.pyfrom 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>
...
在Django中:
從django.utils導入simplejson
JSON = simplejson.dumps(YOUR_VARIABLE)
,並通過 「JSON」 在上下文中
IN JS:
變種YOUR_JS_OBJECT = {{json | safe}};
+1使用Django的序列化程序,它們非常有用,我應該使用它們更多 –
哈哈我實際上從來沒有使用過它們,我只是粗略搜索了django文檔「json encode」,我認爲django可能有一種奇特的做事方式 –
我記得當我第一次研究django的時候瞭解他們,但是因爲他們我總是我們編輯simplejson甚至'str'來滿足這種需求。 –