代码之家  ›  专栏  ›  技术社区  ›  Adithya

python django文件上载“密钥错误”

  •  0
  • Adithya  · 技术社区  · 10 年前

    我正在使用python 3.2&django 1.6。我想上传一个“csv”文件并读取数据,以便将其插入数据库(postgresql)。这是我的代码
    样板

    <form id = "ListForm" name = "ListForm" action = "" method = 'POST' enctype="multipart/form-data">
    <table>
    <tr>
    <td>PM List</td>
    <td><input type="file" name="file_pm" id="file_pm" ></td>
    </tr>   
    <tr><td><input type="submit" value="Upload" name="pmUpload" id="pmUpload" class="button"></td></tr>       
    </table>
    </form>  
    

    Python代码是:

    import cgi
    def pmUpload(request):
        form = cgi.FieldStorage()
        fileitem = form["file_pm"]  
    

    我在上述python代码的最后一行中得到了“KeyError”。我试图逐一读取数据。

    完整的回溯错误是

    Environment:
    
    
    Request Method: POST
    Request URL: http://MYURL/cc/pmList/
    
    Django Version: 1.6.5
    Python Version: 3.2.3
    Installed Applications:
    ('django.contrib.admin',
     'django.contrib.auth',
     'django.contrib.contenttypes',
     'django.contrib.sessions',
     'django.contrib.messages',
     'django.contrib.staticfiles',
     'ccApp')
    Installed Middleware:
    ('django.contrib.sessions.middleware.SessionMiddleware',
     'django.middleware.common.CommonMiddleware',
     'django.middleware.csrf.CsrfViewMiddleware',
     'django.contrib.auth.middleware.AuthenticationMiddleware',
     'django.contrib.messages.middleware.MessageMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware')
    
    
    Traceback:
    File "/home/env/ccENV/lib/python3.2/site-packages/django/core/handlers/base.py" in get_response
      112.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/env/ccENV/lib/python3.2/site-packages/django/views/decorators/csrf.py" in wrapped_view
      57.         return view_func(*args, **kwargs)
    File "/home/env/ccENV/lib/python3.2/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
      22.                 return view_func(request, *args, **kwargs)
    File "/home/env/cccENV/ccc/ccApp/pmList.py" in pmUpload
      19.       fileitem = form["file_pm"]
    File "/usr/lib/python3.2/cgi.py" in __getitem__
      575.             raise KeyError(key)
    
    Exception Type: KeyError at /cc/pmList/
    Exception Value: 'file_pm'  
    

    如何从上传的文件(data.csv)中读取python 3.2中的数据

    1 回复  |  直到 10 年前
        1
  •  3
  •   rinti    10 年前

    文件应位于 request.FILES['file_pm'] .

    推荐文章
    bertrand  ·  混淆名称错误
    8 年前