【发布时间】:2016-04-15 11:56:08
【问题描述】:
我将 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 %}
这种方法的问题是我在资源中得到一个包含“数据”文件(没有 .csv)的页面,并且每行之后都有一个额外的新行。
关于我能做什么或有更好的方法来处理这个问题有什么建议吗?
【问题讨论】:
-
关闭调试后,Django 将不再为您处理静态文件 - 您的生产网络服务器(Apache 或其他东西)应该会处理这些。
-
对不起,请看下面我的回答。我更改了格式,现在工作正常。感谢您的回复!
标签: django python-2.7 csv d3.js