我正在尝试通过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)
答案 0 :(得分:0)
来自URI routing:
这是它的工作原理:在WSGI中注册了路由列表 应用。当应用程序收到请求时,它会尝试 按顺序匹配每一个,直到匹配,然后调用 相应的处理程序。
在您的情况下,'/.*'
的{{1}}模式也与MainHandler
的{{1}}模式匹配,并且在{<1}}之前也是之前的 '/sign'
的列表,因此调用了GuestBook
而不是您期望的APP
。并且MainHandler
没有GuestBook
方法,因此错误。
要修复它,只需交换MainHandler
列表中模式的顺序:
post()