我正在尝试使用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。怎么样?
答案 0 :(得分:9)
您使用POST方法提交表单,但是您实现了get()
处理程序而不是post()
处理程序。将def get(self):
更改为def post(self):
应修复HTTP 405错误。