2011-11-06 52 views
2

我有一些問題的處理方式,並在升級之後的返樸歸真,我不能讓小例子的工作:什麼導致列表索引超出範圍?

class PhotoUploadFormHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.out.write('<html><body>') 
     self.response.out.write('<form action="%s" method="POST" enctype="multipart/form-data">' % blobstore.create_upload_url('/upload_photo')) 
     self.response.out.write('''Upload File: <input type="file" name="file"><br> <input type="submit" 
      name="submit" value="Submit"> </form></body></html>''') 

class PhotoUploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 
     try: 
      upload = self.get_uploads()[0] 
      user_photo = UserPhoto(user=users.get_current_user(), 
            blob_key=upload.key()) 
      db.put(user_photo) 
      self.redirect('/view_photo/%s' % upload.key()) 

     except Exception, ex: 
      self.response.out.write(str(ex)) 

app = webapp2.WSGIApplication([  

('/upload_form', PhotoUploadFormHandler), 
             ('/upload_photo', PhotoUploadHandler), 

以上的回報異常在訪問上傳的文件:

列表索引超出範圍

爲什麼? 感謝您的幫助。

+0

請包括完整的堆棧跟蹤,而不是編輯出所有有用的細節。 –

回答

3

似乎* get_uploads *返回一個空列表。因此,[0]失敗。

+0

是的,我明白,但不是爲什麼從python 2.6到python 2.7的簡單升級導致它。如果我使用表單來上傳文件,那麼我得到一個錯誤,並使用python 2.6代碼工作。 –

+1

在帖子中沒有足夠的信息來診斷問題的根源。這將有助於發佈追蹤並生成顯示* get_uploads *所返回內容的日誌消息。 –

+0

感謝@Raymond Hettinger它似乎是我的問題是「太本地化」,我清理新的部署不會導致此錯誤。所以我要麼研究和發佈更多關於這個問題的問題,要麼認爲它是一個太侷限的問題,我設法將自己描繪到一個角落,將不能做我想做的事情的部分組合起來。 –