Python 如何在HTML页面中显示CSV文件的所有数据?
我在django中有一个读取csv文件并将其数据存储在数据库中的代码,我打算在HTML页面中显示数据,这是我的视图:Python 如何在HTML页面中显示CSV文件的所有数据?,python,django,django-views,Python,Django,Django Views,我在django中有一个读取csv文件并将其数据存储在数据库中的代码,我打算在HTML页面中显示数据,这是我的视图: def addbulkuser(request): prompt = {
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文件中的所有数据,我在HTML中这样调用它:
{% for column in col %}
{{ column }}
{% endfor %}
但它只在html中显示CSV文件中的最后一个数据,我如何显示所有数据
关于。您的代码当前仅将CSV文件中的最后一个数据保存到变量
col
,因此这是上下文中传递的唯一数据
如果要显示所有数据,可以考虑创建一个列表列表,其中每个列表将包含个人的数据
例如,这是可以合并到程序中的方法之一
listoflists=[]
对于csv.reader中的列(io_字符串,分隔符=',',quotechar=“|”):
子列表=[]
对于范围(0,6)内的j
sublist.append(列[j])
追加(子列表)
上下文={'col':列表,
“colu”:colu
}
返回呈现(请求“andon/user\u form\u bulk.html”上下文)
在模板中,您可以通过以下方式访问它:
{% for values in col %}
{% for value in values %}
The value is {{value}}
{% endfor %}
{% endfor %}
您的代码当前仅将CSV文件中的最后一个数据保存到变量
col
,因此这是上下文中传递的唯一数据
如果要显示所有数据,可以考虑创建一个列表列表,其中每个列表将包含个人的数据
例如,这是可以合并到程序中的方法之一
listoflists=[]
对于csv.reader中的列(io_字符串,分隔符=',',quotechar=“|”):
子列表=[]
对于范围(0,6)内的j
sublist.append(列[j])
追加(子列表)
上下文={'col':列表,
“colu”:colu
}
返回呈现(请求“andon/user\u form\u bulk.html”上下文)
在模板中,您可以通过以下方式访问它:
{% for values in col %}
{% for value in values %}
The value is {{value}}
{% endfor %}
{% endfor %}