2012-11-07 66 views
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 

回答

-1

我已經找到了最好的可能是不使用D3時使用Django去,而是用自己的一個映射器等(CherryPy的,塔等)。

+2

我很好奇爲什麼你會反對集成Django和D3的建議。謹慎闡述? –

+0

Django將執行服務器端工作,並在客戶端執行d3。將數據從服務器傳遞到客戶端的更好方法是使用API​​。我在這裏寫了一個小例子:http://stackoverflow.com/questions/26453916/passing-data-from-django-to-d3 –

+0

我發現這個問題從三年前,我很好奇,看看有人可以告訴我,使用Django和d3是不是一個好主意?我一直在用d3工作一段時間,最近我一直認爲使用python來利用所有與數據分析相關的python函數是有意義的。 – agon