Python列表未在JavaScript中渲染

1 投票
2 回答
807 浏览
提问于 2025-04-15 18:14

我有一个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']

撰写回答