python - 如何读取 csv 标头
问题描述
所以这是我上传 csv 或 excel 文件的样子。所以我的问题是,当使用“上传文件”选择 csv 文件时,我想查看 csv 文件的“标题”并将其显示在“提交”按钮之前,以便用户可以选择他们想要的“标题”。只有在那之后“提交”要上传的 csv 文件。
视图.py
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>
secondpopup.html
<div id="form1">
<form action="/someview2/{{id}}" method="POST" enctype="multipart/form-data">
#fields submit part
</form>
</div>
第一个popop.view
def someview1(request,id):
args={}
if request.POST and request.FILES:
csvfile = request.FILES['csv_file']
request.session['csv']=csvfile
if csvfile.name.endswith('.csv'):
dialect = csv.Sniffer().sniff(csvfile.readline())
csvfile.open()
readers= csv.DictReader(csvfile)
args['fieldnames'] = readers.fieldnames
return render(request, 'firstpopup.html',args)
secondpopup.views
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)
推荐阅读
- sql - 在 PostgreSQL 中对连续行进行分组
- rust - 将 Result 转换为自定义 Fail impl 的惯用方法是什么?
- javascript - 如何解决 NodeJS 方法优先级问题
- php - 在简单的 PHP 应用程序中访问 Twilio TranscriptionText
- json - NGX-FORMLY - 具有多级导航的嵌套表单?
- java - 如何在jTable的标题中制作两行
- python - 如何在烧瓶中检索记录的用户 ID?
- c# - 将泛型类传递给返回传递的同一类的泛型 ObservableCollection 的方法
- c++ - 在 C++ 中计算数组中不相等的字符串
- swift - MacOs 照片项目扩展。添加了照片检测