我想将django的views.py中的queryset传递给d3.js.将json数据从django发送到d3.js
views.py:
DEF指数(请求): QS = DCPOWERSTATS.objects.all()的值( 'TS', 'PUE')ORDER_BY( 'TS') 返回渲染(要求, '仪表盘/ dash.html',背景= QS})
dash.html:
<!DOCTYPE html>
<meta charset="utf-8">
<style>
.chart div {
font: 10px sans-serif;
background-color: steelblue;
text-align: right;
padding: 3px;
margin: 1px;
color: white;
}
</style>
<div class="chart"></div>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
var data = {{ data_json }};
var x = d3.scale.linear()
.domain([0, d3.max(data)])
.range([0, 420]);
d3.select(".chart")
.selectAll("div")
.data(data)
.enter().append("div")
.style("width", function(d) { return x(d) + "px"; })
.text(function(d) { return d; });
</script>
我需要在views.py和dash.html变化,从而形成类似: https://bl.ocks.org/mbostock/3885304
以前的所有答案都令人困惑。我需要为views.py和dash.html提供解决方案。我也需要知道将queryset结果发送给javascript的完美方式。
谢谢!
+1模板/ django rest框架。如果您的数据仅流向客户端,则模板无问题。但是当你开始不得不接受PUT,POST等的时候,DRF就是要走的路。 – DataSwede
所以,如果我需要动态的内容在客户端进行ajax调用是首选? – sach20
由于@DataSwede注意到这里的数据流也具有相关性。如果您的数据只从服务器流向客户端,那么模板方法是合适的,但如果您的数据也需要回流,则应考虑采用RESTful方法。 – dahrens