首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在HTML页面中显示CSV文件的所有数据?

如何在HTML页面中显示CSV文件的所有数据?
EN

Stack Overflow用户
提问于 2020-02-28 19:04:37
回答 1查看 297关注 0票数 1

在django中有一个读取csv文件并将其数据存储在数据库中的代码,我想要做的是在HTML页面中显示数据,这是我的观点:

代码语言:javascript
复制
def addbulkuser(request):                                                                                  
prompt = {                                                                                             
    'order': 'Order of the file should be: Username, First name, Last name, Email & Password'          
}                                                                                                      

if request.method == "GET":                                                                            
    return render(request, 'andon/user_form_bulk.html', prompt)                                        

data_file = request.FILES['file']                                                                      

if not data_file.name.endswith('.csv'):                                                                
    messages.error(request, 'This is not a csv file')                                                  

if data_file.name.endswith('.csv'):                                                                    
    data_set = data_file.read().decode('UTF-8')                                                        
    io_string = io.StringIO(data_set)                                                                  
    next(io_string)                                                                                    
    for column in csv.reader(io_string, delimiter=',', quotechar="|"):                                 
        created = User.objects.update_or_create(                                                       
            username=column[0],                                                                        
            first_name=column[1],                                                                      
            last_name=column[2],                                                                       
            email=column[3],                                                                           
            password=column[4],                                                                        
            last_login=datetime.now(),                                                                 
        )                                                                                              

        user = User.objects.get(username=column[0])                                                    
        user.set_password(user.password)                                                               
        user.save()                                                                                    
        andon_user_group = Group.objects.get(name='andon_user')                                        
        andon_user_group.user_set.add(user)                                                            
    col = column                                                                                       
    colu = messages.success(request, 'Users added successfully')                                       
    context = {'col': col,                                                                             
               'colu': colu                                                                            
               }                                                                                       
    return render(request, 'andon/user_form_bulk.html', context)                                       

return render(request, 'andon/user_form_bulk.html')    

变量"col"包含csv文件中的所有数据,我用这种方式在中调用它:

代码语言:javascript
复制
{% for column in col %}
        {{ column }}
    {% endfor %}

但是它只在html中显示CSV文件中的最后一个数据,如何显示所有数据?

致以问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 19:23:24

您的代码目前只将CSV文件中的最后数据保存到变量col,因此这是上下文中传递的唯一数据。

如果要显示所有数据,可以考虑创建列表列表,其中每个列表将包含个人的数据。

例如,这是可以合并到程序中的方法之一。

代码语言:javascript
复制
listoflists = []
for column in csv.reader(io_string, delimiter=',', quotechar="|"):
    sublist = []
    for j in range(0,6)
        sublist.append(column[j])
    listoflists.append(sublist)

context = {'col': listoflists,                                                                             
            'colu': colu                                                                            
          }                                                                                       
return render(request, 'andon/user_form_bulk.html', context)  

在模板中,您可以访问它,如

代码语言:javascript
复制
{% for values in col %}
  {% for value in values %}
    The value is {{value}}
  {% endfor %}
{% endfor %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60457808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档