Django:如何在没有''的情况下将数组传输到javascript?

Posted

技术标签:

【中文标题】Django:如何在没有\'\'的情况下将数组传输到javascript?【英文标题】:Django: how to transfer array to javascript without u' '?Django:如何在没有''的情况下将数组传输到javascript? 【发布时间】:2012-01-03 16:55:35 【问题描述】:

在视图中:

'some_array': ['text1','text2', 'text3']

当我尝试将它在模板中传输到 js 脚本时:

<script type="text/javascript">
    some_func( some_array );
</script>

在源代码中是这样的:

<script type="text/javascript">
    some_func([u'text1', u'text2', u'text3']);
</script>

所以这是javascript中的错误。

如何从数组元素中删除前缀u'' 或如何解决这个问题?

谢谢!

【问题讨论】:

【参考方案1】:

当您将 Python 列表转换为字符串时,您正在创建变量的 Python 表示 (__repr__)。您在这里尝试做的是创建相同数据的 JavaScript 表示。

JSON 是一种很好的数据传输方式,因为很多语言都有很好的 JSON 解析器。在 JavaScript 的情况下更是如此,因为 JSON 实际上是原生 JavaScript 语法,因此您可以将 JSON 表示直接放入 JavaScript 源代码中。

要生成 JSON,您可以使用 Python 的内置 JSON 库(Python 2.6+)。

>>> import json
>>> json.dumps([u'text1', u'text2', u'text3'])
'["text1", "text2", "text3"]'

这将创建一个可在您的模板中使用的字符串。

【讨论】:

或者你可以使用内置的序列化器:docs.djangoproject.com/en/dev/topics/serialization/#id2【参考方案2】:

将数据结构转换为 JSON string 并改用它。

【讨论】:

谢谢,我现在就试试并反馈!

以上是关于Django:如何在没有''的情况下将数组传输到javascript?的主要内容,如果未能解决你的问题,请参考以下文章