我已经开始使用 d3 和 django 构建一个网络应用程序。d3 当然建立在 DOM 之上,我不清楚堆栈对象和函数应该驻留在哪里以及如何传递。例如,我有一个items模型,它具有一定的价值,比如size。现在我想根据大小显示这些元素,例如半径。我有一个清单并将它们传递给 d3。我先进行缩放,然后传递原始值,而不是使用 d3.scale。我使用 django 模板来生成 javascript 代码,这似乎不是一个好主意。
从 d3 的描述来看,似乎有很多重叠之处:“D3 允许您将任意数据绑定到文档对象模型 (DOM),然后将数据驱动的转换应用于文档。” 我也在研究 CouchDB 和 MongoDB,有点困惑所有这些层如何交互。
// simple example using django with d3
// routing with django
values = [float(item.size) for item in itemlist] // get model-data
//scale values in django/python
values = [round(x/(max(values)),3) for x in values]
html += t.render(Context({'values':values}))
//template producing javascript given the values from python
{% for value in values %}
data.push({"x":{{value}},"y":0.5})
{% endfor %}
//paint data with d3 based on DOM