完成新手问题:
我正在运行一个Django应用程序,我在其中生成一个包含数据的视图:
result = json.dumps(data)
context = RequestContext(request, {
'result': result,
})
return HttpResponse(template.render(context))
现在我有一个map.js
文件,我使用d3.js
在其中渲染数据的热图。
我还有一个index.html
文件,我的页面被渲染,热图参考通过
<body>
<div id="heatMap">
</div>
<body>
问题:如何将视图中生成的数据传递给map.js
文件?
非常感谢你的帮助!
答案 0 :(得分:8)
在您的模板中,使用{{ result }}
标记之间的<script></script>
来进行JavaScript魔术。
如果result
是序列化的JSON对象,则可以使用JSON.parse(result)
将JSON字符串转换为JavaScript对象。
示例:
<script type="text/javascript">
var data = JSON.parse("{{ result }}");
run_d3_stuff(data);
</script>
答案 1 :(得分:2)
这里有一些潜在的解决方案。
正如Alp所指出的,第一个是:
<script>
run_d3_stuff('{{results}}'); //Use whatever your function is here.
</script>
另一种解决方案是使用视图呈现脚本文件并将其包含在目标页面中。
编辑:
更清楚的是,第二个解决方案是将模板更改为您的JavaScript文件,使用上面相同的技巧为此设置变量的值。然后在你的页面中你会这样做:
<script src="my_view's_path"></script>