Djang静态CSV由d3使用

时间:2016-01-11 08:33:30

标签: django python-2.7 csv d3.js

我将CSV文件存储在静态文件夹中。当我将Debug设置为True时,这非常有效。

d3.csv("{% static 'app/data/data.csv' %}" ...

但是,只要我将Debug设置为False(用于生产),我就会收到404错误,说该文件不存在。 我试图通过在单独的页面上使用

提供CSV文件来解决这个问题
d3.csv("{% url 'app:data' %}" ...

以下是在views.py中为CSV文件提供服务的功能:

def data(request):
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'inline; filename="data.csv"'
    with open("...absolute path.../data/data.csv", "rb") as csvData:
        csv_list = list(csv.reader(csvData))
    csvData.close()
    csv_data = csv_list
    t = loader.get_template('app/data.txt')
    c = Context({'data': csv_data})
    response.write(t.render(c))
    return response

和data.txt:

{% for row in data %}
{{row.0}},{{row.1}}
{% endfor %}

这个方法的问题是我在资源中得到一个包含“data”文件(没有.csv)的页面,并且在每一行之后都有一个额外的新行。

有关我能做什么的建议还是有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

没关系,似乎显然是错误的格式化。如果我将data.txt更改为:

,则工作正常
{% for row in data %}{{row.0}},{{row.1}}
{% endfor %}