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 控制器?