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

时间:2009-09-22 14:51:56

标签: javascript django

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

3 个答案:

答案 0 :(得分:3)

将其转换为JSON,并在您的template.html中包含<script>标记内的内容,例如

var my_associative_array = {{ json_data }}

将Jict编码的Python dict编码为字符串并使用键json_data将其放入上下文中。

答案 1 :(得分:3)

Vinay Sajip已关闭,但是你添加安全过滤器以避免django自动转义json数据,所以这样可行(还有其他方法可以停止自动转义,但这是最简单的方法):

 var my_associative_array = {{ json_data|safe }}

答案 2 :(得分:0)

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

但是,由于某些原因,您通常不希望这样做。如果在模板中包含此动态数据,则无法轻松缓存它。这不应该是生成您所包含的JS文件的另一个视图吗?或者也许是一个AJAX调用,一旦页面生效就抓取数据?选择适合您情况的选择。