Python 无法通过循环服务器进行迭代

Python 无法通过循环服务器进行迭代,python,list,request,Python,List,Request,我试图在python中迭代一个列表对象。我正在上传两个文件,并通过request.files.getlistfile调用检索它。下面是我使用的代码: 编辑 下面是上传的_文件变量的输出 [] <type 'list'> 我得到: <bound method ImmutableMultiDict.getlist of ImmutableMultiDict([('frontCheck', <FileStorage: u'1_23_f.jpg' ('application

我试图在python中迭代一个列表对象。我正在上传两个文件,并通过request.files.getlistfile调用检索它。下面是我使用的代码:

编辑

下面是上传的_文件变量的输出

[] <type 'list'>
我得到:

<bound method ImmutableMultiDict.getlist of ImmutableMultiDict([('frontCheck',   <FileStorage: u'1_23_f.jpg' ('application/octet-stream')>), ('rearCheck', <FileStorage: u'1_23_r.jpg' ('application/octet-stream')>)])>

它不会像在上载的文件中的“f”中所预期的那样迭代列表:

,因为您在迭代中返回。函数在到达return语句后立即结束。

查看helpflask.Request.files:


因此:您指定了错误的密钥文件;您应该改为使用frontCheck和rearCheck。

如何断言这一点?print request.files.getlist,typeuploaded_files-您正在打印函数,而不是调用函数时返回的值-print request.files.getlistfile,typeuploaded_files,或者更好的是,只打印变量的值:print uploaded_files,typeuploaded_files.request.files.getlistfile似乎返回一个空列表,因此您的程序正在按预期工作。您需要向任何人展示更多的代码,以便他们能够说出它为什么这样做。这似乎是有意的行为,这不是海报问题的答案。我看不出你可能从问题中看出这一点。因为海报的问题是“它没有遍历列表”,他给出的调试输出显示它是一个空列表。如果问题是返回,它至少会进行一次迭代。此外,函数名upload_file意味着要上载单个文件,在第一次保存时返回有意义。虽然他在调试时遇到了问题,但这并不是对核心问题的回答。@Lattyware:这是怎么回事?
 print request.files.getlist 
<bound method ImmutableMultiDict.getlist of ImmutableMultiDict([('frontCheck',   <FileStorage: u'1_23_f.jpg' ('application/octet-stream')>), ('rearCheck', <FileStorage: u'1_23_r.jpg' ('application/octet-stream')>)])>
Each key in :attr:`files` is the name from the
``<input type="file" name="">``
Return the list of items for a given key. If that key is not in the
`MultiDict`, the return value will be an empty list.