Загрузка файла HTML в Google App Engine - получение 405 - PullRequest
3 голосов
/ 22 февраля 2010

Я пытаюсь создать простое эхо-приложение, используя Python. Я хочу отправить файл с формой POST и вернуть его обратно (файл HTML).

Вот секция handlers YAML, которую я использую:

handlers:
- url: /statics
  static_dir: statics

- url: .*
  script: main.py

Это в основном пример hello world в main.py, и я добавил каталог для размещения моего статического HTML-файла формы. Вот HTML-код в statics/test.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 Ответ

9 голосов
/ 22 февраля 2010

Вы отправляете форму с помощью метода POST, но вместо обработчика post() реализован обработчик get(). Изменение def get(self): на def post(self): должно исправить ошибку HTTP 405.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...