我刚开始使用python进行Google App Engine,我正在按照教程编写自己的小应用程序来熟悉webapp框架。现在我刚刚注意到该教程执行了以下self.redirect('/')
。所以这让我想知道:有没有办法重定向到处理程序而不是硬编码路径?认为可能更好,以便您可以在不破坏应用程序的情况下更改网址。
答案 0 :(得分:3)
另一种方法是将符号名称映射到网址,这样您就可以重定向到映射的网址 - 然后您可以更新网址而不受惩罚。
或者,如果您只是从另一个处理程序执行代码,我不知道为什么您不能只是进行方法调用 - 最坏的情况是,您可以从两个处理程序中提取一个常用方法并调用它。
答案 1 :(得分:1)
这不是App Engine的限制,而是webapp框架。 webapp旨在成为一个轻量级框架,只提供必需品。
如果你想要fancier redirect behavior,请试试Django。
答案 2 :(得分:0)
接受的答案让我构建了自己的小路由器,然后才意识到在webapp2中你可以命名你的路由,然后使用webapp2 Uri routing
中描述的名称重定向app = webapp2.WSGIApplication(
routes=[webapp2.Route('/', handler='RootController', name='root')])
然后在RequestHandler
中重定向到它们self.redirect_to('root')
如果您的路径包含占位符,您可以提供占位符和webapp2.Router的值,为您构建正确的uri。再次查看webapp2 Uri routing以获取更多详细信息。