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?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有数据库的情况下将数据保存到数组中

如何在没有表单的情况下将字符串数组发布到 ASP.NET MVC 控制器?

如何在不创建嵌套数组的情况下将多个变量添加到数组

如何在没有副本的情况下将结构转换为字节数组?

有没有办法在不构建的情况下将 docker-compose 容器无缝传输到另一台主机? [复制]

如何在没有可选值的情况下将字典数组快速转换为json字符串[重复]