在MainPage中使用POST方法的Google App Engine Python

时间:2018-11-14 14:20:29

标签: python-2.7 webapp2

我正在尝试了解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中正常运行的任何逻辑原因。

0 个答案:

没有答案