Я пытаюсь понять проблему с Google App Engine и Python. Похоже, у меня не может быть обработчик POST в классе MainPage. Или я как-то неправильно его использую. Система не возражает против кода Python, но, похоже, не находит метод post. Ответ от сервера: «Метод 405 не разрешен» и «Метод POST не разрешен для этого ресурса».
Вывод на консоли dev_appserver.py:
INFO 2018-11-14 13: 41: 32,104 module.py:861] по умолчанию: "GET / HTTP / 1.1" 200 267
INFO 2018-11-14 13: 41: 35,550 module.py:861] по умолчанию: "POST / HTTP / 1.1" 405 188
Первоначальный источник
# -*- coding: utf-8 -*-
import webapp2
import logging
form = """
<form action="/" method="post">
<input type="checkbox" name="vehicle" value="Bike">Bike<br>
<input type="checkbox" name="vehicle" value="Car">Car<br>
<input type="submit" value="Submit" >
</form>
"""
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.write(form) # write the blank form
def post(self):
logging.info("in MainPage>post")
self.response.write("Thanks! That works !!!")
app = webapp2.WSGIApplication([
('/', MainPage),
], debug=True)
Метод GET вызывается правильно, а простая форма отображается правильно. Ошибка 405 появляется, когда я делаю выбор и отправляю форму. Я объявил форму с обоими;
<form action="/" method="post">
и
<form method="post">
Я могу создать дополнительный класс, который может содержать метод POST и заставить действие выбрать другой класс; все отлично работает Я просто не нашел никакой логической причины, по которой он не может корректно функционировать в MainPage.