Python 什么原因导致列表索引超出范围?
升级后,我在处理表单和恢复基础方面遇到了一些问题,我无法使用最简单的示例:Python 什么原因导致列表索引超出范围?,python,forms,http,google-app-engine,blob,Python,Forms,Http,Google App Engine,Blob,升级后,我在处理表单和恢复基础方面遇到了一些问题,我无法使用最简单的示例: class PhotoUploadFormHandler(webapp2.RequestHandler): def get(self): self.response.out.write('<html><body>') self.response.out.write('<form action="%s" method="POST" enctype="m
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),
类PhotoUploadFormHandler(webapp2.RequestHandler):
def get(自我):
self.response.out.write(“”)
self.response.out.write(“”%blobstore.create\u upload\u url('/upload\u photo'))
self.response.out.write(“”“上传文件:
“””)
类PhotoUploadHandler(blobstore\u Handler.BlobstoreUploadHandler):
def post(自我):
尝试:
upload=self.get\u uploads()[0]
user\u photo=UserPhoto(user=users.get\u current\u user(),
blob_key=upload.key())
数据库放置(用户照片)
self.redirect('/view_photo/%s'%upload.key())
除例外情况外,例如:
self.response.out.write(str(ex))
app=webapp2.WSGIApplication([
('/upload_form',PhotoUploadFormHandler),
('/upload_photo',PhotoUploadHandler),
以上返回访问上传文件时的异常:
列表索引超出范围
为什么??
感谢您的帮助。看来*get\u uploads*返回的是一个空列表。因此,
[0]
失败。是的,我理解但不理解为什么从python 2.6到python 2.7的简单升级会导致此问题。如果我使用表单上载文件,则会出现错误,并且python 2.6的代码正常工作。帖子中没有足够的信息来诊断问题的根源。这将有助于发布回溯并生成日志消息由于get_上传返回的内容。谢谢@Raymond Hettinger我的问题似乎是“太本地化了”我清理新的部署不会造成这个错误。所以我会研究和发布更多的关于这个问题或认为这是一个过于本地化的问题,我设法把自己画成一个角落组合的组件,不能做我想。你弄清了这一点吗?我也有同样的问题。problem@Awalias确保您的表格包含enctype=“multipart/form data”
。这是导致此错误的原因之一。请包含完整的堆栈跟踪,而不是编辑掉所有有用的详细信息。