1
我已經開始使用d3和django構建一個web應用程序。當然,d3是建立在DOM上的,並且我不清楚,堆棧中的對象和函數應該駐留在哪裏以及如何傳遞。例如,我有一個項目的模型,它有一定的價值,說大小。現在我想根據大小顯示這些元素,例如半徑。我有一個列表,並將它們傳遞給d3。我首先進行縮放,然後傳遞原始值,而不是使用d3.scale。我使用django模板來生成JavaScript代碼,它不像一個好主意。使用d3和django
從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
我很好奇爲什麼你會反對集成Django和D3的建議。謹慎闡述? –
Django將執行服務器端工作,並在客戶端執行d3。將數據從服務器傳遞到客戶端的更好方法是使用API。我在這裏寫了一個小例子:http://stackoverflow.com/questions/26453916/passing-data-from-django-to-d3 –
我發現這個問題從三年前,我很好奇,看看有人可以告訴我,使用Django和d3是不是一個好主意?我一直在用d3工作一段時間,最近我一直認爲使用python來利用所有與數據分析相關的python函數是有意義的。 – agon