最近几天看到很多代码,比如GAE Boilerplate,几乎都是用Routes来管理页面调用。我想知道为什么?官方的例子总是使用“正常”的方法:
app = webapp2.WSGIApplication([('/', MainPage),
('/lang', ChangeLanguage)], debug=True)
但现在我发现了这个替代方案:
from webapp2_extras.routes import RedirectRoute
RedirectRoute('/lang/<lang>', ChangeLanguage, name='lang', strict_slash=True),
RedirectRoute('/', MainPage, name='home', strict_slash=True)
在第一种情况下,我使用参数在请求中传递我的变量(如/lang?hl=en_US
),而在第二种情况下,我必须将其作为路径传递(如/lang/en_US
)。
但是为什么要使用一种方法呢?有什么优势吗?
另外,我注意到使用第一种方法可以在 get 和 put 方法中调用我的表单,例如,/register
但是使用路由,get 调用相同的工作,但是当一个帖子完成时,它只有在表单动作是/register/
(带有最后一个斜杠)。