将HTML文件上传到Google App Engine - 获得405

时间:2010-02-21 22:07:23

标签: python google-app-engine

我正在尝试使用Python做一个简单的echo应用程序。我想提交一个带有POST表单的文件并将其回送(HTML文件)。

这是我正在使用的YAML的handlers部分:

handlers:
- url: /statics
  static_dir: statics

- url: .*
  script: main.py

它基本上是main.py中的hello world示例,我添加了一个目录来托管我的静态html表单文件。这是statics/test.html中的HTML:

<form action="/" enctype="multipart/form-data" method="post">
    <input type="file" name="bookmarks_file">
    <input type="submit" value="Upload">
</form>

处理程序如下所示:

#!/usr/bin/env python
from google.appengine.ext import webapp
from google.appengine.ext.webapp import util

class MainHandler(webapp.RequestHandler):
  def get(self):
    self.response.headers['Content-Type'] = 'text/plain'
    self.response.out.write(self.request.get('bookmarks_file'))

def main():
  application = webapp.WSGIApplication([('/', MainHandler)],
                                       debug=True)
  util.run_wsgi_app(application)

if __name__ == '__main__':
  main()

但是,我在发布文件时收到错误405。怎么样?

1 个答案:

答案 0 :(得分:9)

您使用POST方法提交表单,但是您实现了get()处理程序而不是post()处理程序。将def get(self):更改为def post(self):应修复HTTP 405错误。