我正在尝试了解Google App Engine和Python的问题。看来MainPage类中不能包含POST处理程序。或者,我以某种方式使用不正确。该系统不反对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” 405188
原始来源是
# -*- 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中正常运行的任何逻辑原因。