繁体   English   中英

从views.py获取Django Python数据到template.html中的javascript对象

[英]Getting Django Python data from views.py to javascript object in template.html

我正在使用Django的render_to_response将数据写出到html页面,但我也想通过render_ to _response调用将python字典加载到javascript关联数组中。 最好的方法是什么?

将其转换为JSON,并在template.html中的<script>标记内添加类似

var my_associative_array = {{ json_data }}

在将您的Python dict进行JSON编码后,使用键json_data将其放入上下文中。

Vinay Sajip已经关闭,但是您添加了安全过滤器,以避免django自动转义json数据,因此这可以工作(还有其他方法可以停止自动转义,但这是最简单的方法):

 var my_associative_array = {{ json_data|safe }}

这到底是什么意思? 如果您认为模板中的数据是JavaScript术语,则不是:您可以直接在模板中使用python对象。 如果您的意思是,如何将Python字典或列表中的JSON文字嵌入我的模板中:使用Django随附的simplejson对其进行编码。

但是,由于多种原因,您通常不想这样做。 如果在模板中包含此动态数据,则无法轻松地对其进行缓存。 这不应该是另一个正在生成您要包含的JS文件的视图吗? 还是在页面上线后通过AJAX调用来获取数据? 选择最适合您的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM