Python 如何读取csv标题
这是我上传的csv或excel文件。因此,我的问题是,当使用“上载文件”选择csv文件时,我希望看到csv文件的“标题”,并将其显示在“提交”按钮之前,以便用户可以选择他们想要的“标题”。只有在“提交”csv文件后才能上载 views.pyPython 如何读取csv标题,python,django,Python,Django,这是我上传的csv或excel文件。因此,我的问题是,当使用“上载文件”选择csv文件时,我希望看到csv文件的“标题”,并将其显示在“提交”按钮之前,以便用户可以选择他们想要的“标题”。只有在“提交”csv文件后才能上载 views.py if request.POST and request.FILES: csvfile = request.FILES['csv_file'] if csvfile.name.endswith('.csv'): dial
if request.POST and request.FILES:
csvfile = request.FILES['csv_file']
if csvfile.name.endswith('.csv'):
dialect = csv.Sniffer().sniff(csvfile.readline())
csvfile.open()
readers = csv.reader(csvfile, delimiter=',',dialect=dialect)
header=False
addhosts=set()
for reader in readers:
if header is True:
name=reader[0]
desc=reader[1]
value=somemode.objects.create(name=name, desc=desc)
header=True
else:
messages.error(request, "Uploaded file is not .csv" )
return HttpResponseRedirect('/someviews/')
这就是不使用javascript的答案 firstpopup.html
<div id="form">
<form action="/someview1/{{id}}" method="POST" enctype="multipart/form-data">
#file upload part
</form>
</div>
<div id="form1">
<form action="/someview2/{{id}}" method="POST" enctype="multipart/form-data">
#fields submit part
</form>
</div>
第二个视图
def someview2(request,id):
csvfile = request.session['csv']
title=request.POST['title']
Desc=request.POST['desc']
csvfile.open()
readers= csv.DictReader(csvfile)
for reader in readers:
ttl=reader[title]
desc=reader[Desc]
name=somemode.objects.create(Title=ttl,Description=desc)
del request.session['csv']
return HttpResponseRedirect('/someview3/'+id)
你能给我看一下代码吗?我已经编写了代码,可以在文件上传后读取文件,但在此之前不能。@SharathNayak不上传文件是不可能读取文件的。也许你可以创建一个中间件表单,上传后阅读标题并让他们选择。你需要编写一些Javascript来读取客户端的CSV文件。请参阅:将尝试编写js代码。非常感谢。
def someview2(request,id):
csvfile = request.session['csv']
title=request.POST['title']
Desc=request.POST['desc']
csvfile.open()
readers= csv.DictReader(csvfile)
for reader in readers:
ttl=reader[title]
desc=reader[Desc]
name=somemode.objects.create(Title=ttl,Description=desc)
del request.session['csv']
return HttpResponseRedirect('/someview3/'+id)