我正在使用Django的render_to_response
将数据写入html页面,但我也喜欢render_ to _response调用将python字典加载到javascript关联数组中。最好的方法是什么?
答案 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调用,一旦页面生效就抓取数据?选择适合您情况的选择。