Javascript 如何将csv文件发送到Django中的d3.js?
我目前正在使用Django+D3.js。 模板(viewsv.html)包含一个需要csv文件的js函数:Javascript 如何将csv文件发送到Django中的d3.js?,javascript,python,django,csv,d3.js,Javascript,Python,Django,Csv,D3.js,我目前正在使用Django+D3.js。 模板(viewsv.html)包含一个需要csv文件的js函数: d3.text("{{ file }}", function(data) { var parsedCSV = d3.csv.parseRows(data); var container = d3.select("body") .append("table") .selectA
d3.text("{{ file }}", function(data) {
var parsedCSV = d3.csv.parseRows(data);
var container = d3.select("body")
.append("table")
.selectAll("tr")
.data(parsedCSV).enter()
.append("tr")
.selectAll("td")
.data(function(d) { return d; }).enter()
.append("td")
.text(function(d) { return d; });
});
如果不使用Django,函数应该是d3.text(“train.csv”,function(data){…}
现在我在我的视图.py中编写以下代码
def viewCSV(request):
fp = open('train.csv', 'rb')
data = fp.read()
variables = RequestContext('viewCSV.html', {'file': data})
t = get_template('viewCSV.html')
output = t.render(variables)
return HttpResponse(output)
顺便说一下,viewscsv.html和train.csv在Django项目下的同一个文件夹中
当我运行服务器并访问url时,我得到
属性错误位于/viewCSV/
“str”对象没有属性“META”
我只想让js读取csv文件。
我不知道如何实现它。有人能帮我回答这个问题吗?
提前感谢。RequestContext的第一个参数是请求,而不是模板名称 不过,不需要所有这些冗长的东西:函数的最后四行可以替换为:
return render(request, 'viewCSV.html', {'file': data})
其中,
render
是从django导入的。快捷方式
您希望将文件名插入模板,而不是文件内容。看起来您正在将数据读取到视图函数中,然后将数据插入模板。只需插入文件名,然后让d3.text
执行即可事情(你也可以使用d3.csv
,这就是我要使用的)
即:
并且像@Daniel Roseman那样做(顺便说一句,我就是这么做的)
但是不希望URL作为输入吗?
def viewCSV(request):
variables = RequestContext(request, {'file': 'train.csv'})
t = get_template('viewCSV.html')
output = t.render(variables)
return HttpResponse(output)
def viewCSV(request):
return render(request, 'viewCSV.html', {'file': 'train.csv'})