Google App Engine Python с использованием метода POST в MainPage - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь понять проблему с 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.

...