Javascript 如何将csv文件发送到Django中的d3.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

我目前正在使用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")

                .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'})