![](/img/trans.png)
[英]405 for Google App Engine - The method POST is not allowed for this resource — adding to Boilerplate
[英]The method POST is not allowed for this resource. Google App Engine Python
我正在尝试通过GAE运行一个简单的GuestBook页面。 它在其旁边显示一个文本字段和一个按钮。 当按下按钮时,POST方法中似乎有错误。 代码对我来说看起来不错,我知道这只是我似乎无法找到的一个小错误。
import webapp2
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write("""<h1>Hello, world.</h1>
<br> <form action="/sign" method=post>
<textarea name=content rows=2 cols=30></textarea>
<br><input type=submit value="Sign GuestBook">
</form>""")
class GuestBook(webapp2.RequestHandler):
def post(self):
self.response.write('<h2>You wrote:</h2> %s' % self.request.get('content'))
APP = webapp2.WSGIApplication([
('/.*', MainHandler),
('/sign', GuestBook),
], debug=True)
从URI路由 :
它是这样工作的:路由列表已在WSGI应用程序中注册。 当应用程序收到请求时,它将尝试按顺序匹配每个请求,直到一个匹配为止,然后调用相应的处理程序。
在你的情况下, '/.*'
的模式MainHandler
也匹配'/sign'
之一的GuestBook
,也放在面前的APP
的列表,以便MainHandler
被调用,而不是GuestBook
,你会期望。 而且MainHandler
没有post()
方法,因此会出现错误。
要解决此问题,只需在APP
列表中交换模式的顺序即可:
APP = webapp2.WSGIApplication([
('/sign', GuestBook),
('/.*', MainHandler),
], debug=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.