2017-08-17 86 views
0

我正在创建一个用户可以上传csv文件的站点,并且当前正在处理用户可以在不下载文件的情况下查看文件内容的页面。要做到这一点,我读了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

您可能要作出这样一个列表的列表:

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>