Google App Engine:重定向到RequestHandler

时间:2010-07-16 18:31:30

标签: python google-app-engine

我刚开始使用python进行Google App Engine,我正在按照教程编写自己的小应用程序来熟悉webapp框架。现在我刚刚注意到该教程执行了以下self.redirect('/')。所以这让我想知道:有没有办法重定向到处理程序而不是硬编码路径?认为可能更好,以便您可以在不破坏应用程序的情况下更改网址。

3 个答案:

答案 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以获取更多详细信息。