我正在创建一个用户可以上传csv文件的网站,目前正在处理一个页面,用户可以在该页面上查看该文件的内容而无需下载。要做到这一点,我正在这样的视图中阅读csv:
def source_details(request, source_id):
context_dict = {}
# Get a specific object
data_source = Source.objects.get(id=source_id)
context_dict['data_source'] = data_source
# Open the csv and print it to terminal
with open(MEDIA_ROOT+data_source.sample, newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print(', '.join(row))
return render(request, 'data/source-details.html', context_dict)
正如您所看到的那样,我可以毫不费力地打开上传的csv文件并将其打印到终端,但我希望将其作为表格显示在浏览器中。有关如何实现这一目标的任何想法?谢谢。
答案 0 :(得分:0)
您可能想要列出以下列表:
csv_preform = [[row1],[row2],[row3]]
然后将其传递给上下文并将其循环到模板中,如表:
<table>
<tr>
<th>Test1</th>
<th>Test2</th>
...
</tr>
{% for row in csv_preform %}
<tr>
{% for sub_row in row %}
<td>{{sub_row}}</td>
{% endfor %}
</tr>
{% endfor %}
</table>