Python列表未在JavaScript中渲染
我有一个JavaScript代码,它需要两个变量,也就是两个列表,一个是数字列表,另一个是来自Django/Python的字符串列表。
numbersvar = [0,1,2,3]
stringsvar = ['a','b','c']
数字列表显示得很好,但是当我使用{{stringsvar}}时,它却没有显示出来。
2 个回答
0
stringsvar里面包含什么?是列表,还是列表的字符串表示?
我建议你从视图方法把正确的JavaScript字符串格式的列表传递到模板中去渲染。Python和JavaScript的数组写法是一样的,所以你可以这样做:
def my_view(request):
return render_template("...", stringsvar=str(the_list))
然后在模板中:
<script language="javascript">
stringsvar = {{ stringsvar }};
...
</script>
或者你可以使用json序列化工具,这样的好处是你还可以传递其他类型的值。
from django.core import serializers
def my_view(request):
return render_template("...", stringsvar=serializers.serialize("json", the_list))
3
也许使用json模块来创建JavaScript列表会更好?
>>> a = ['stste', 'setset', 'serthjsetj']
>>> b = json.dumps(a)
>>> b
'["stste", "setset", "serthjsetj"]'
>>> json.loads(b)
[u'stste', u'setset', u'serthjsetj']