django - 值错误 Django CSV
问题描述
我要做的就是通过 Django 在页面上显示我的 CSV 表。一切似乎都正常,但由于某种原因,我收到了一个错误,我找不到解决方案
ValueError: The view csv_app.views.csv_simple_read didn't return an HttpResponse object. It returned None instead.
[19/Feb/2020 21:40:07] "GET / HTTP/1.1" 500 57986
我是 Django 的新手。如果有任何帮助,我将不胜感激。
视图.py
import csv
import os
def csv_simple_read(request):
path = os.path.dirname(__file__)
file = os.path.join(path, 'csv_simple_read.csv')
with open(file) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
line_count = 0
for row in csv_reader:
print('\n\nColumn names are {}, {}, {}, {}'.format(row[0], row[1], row[2], row[3]))
line_count += 1
csv_simple_read.csv
test3;2020-02-16;05:22:49;OK
test2;2020-02-16;05:22:25;OK
test1;2020-02-16;05:22:10;OK
test3;2020-02-16;05:22:49;OK
test2;2020-02-16;05:22:25;OK
test1;2020-02-16;05:22:10;OK
csv_home.html
<body>
<h3>CSV Example - Read Write Examples</h3>
<ul>
<br>
<li>Read Operation
<ul>
<li>
<a href="{% url 'csv_simple_read' %}">Simple CSV Read Operation</a>
</li>
</ul>
</li>
</ul>
{{csv_data}}
{% if csv_data %}
sad
{{csv_data}}
{% endif %}
</body>
解决方案
让我们稍微更改一下您的视图代码,以便从 Python 转换为 HTML。
with open(file) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=';')
line_count = 0
resultlist = []
for row in csv_reader:
resultdict = {}
resultdict['name'] = row[0]
resultdict['date'] = row[1]
resultdict['time'] = row[2]
resultdict['status'] = row[3]
resultlist.append(resultdict)
line_count += 1
return render(request, "csv_home.html", {'results': resultlist})
在您的 HTML 文件中,您可以执行此操作
{% for result in results %}
{{ result.name }}
{{ result.date }}
{% endfor %}