Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何读取csv标题_Python_Django - Fatal编程技术网

Python 如何读取csv标题

Python 如何读取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

这是我上传的csv或excel文件。因此,我的问题是,当使用“上载文件”选择csv文件时,我希望看到csv文件的“标题”,并将其显示在“提交”按钮之前,以便用户可以选择他们想要的“标题”。只有在“提交”csv文件后才能上载

views.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>
<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)