1

我已经开始使用 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
4

1 回答 1

-1

我发现最好的方法可能是在使用 d3 时不要使用 django,而是使用自己的映射器等(Cherrypy、Pylons 等)。

于 2012-11-16T09:48:52.570 回答