由处理程序重定向

时间:2014-06-09 10:31:26

标签: google-app-engine webapp2

我正在为appengine寻找类似于flask framework url_for的功能。它需要在webapp2.WSGIApplication中将类名重定向到url,并将其与之关联。

所以,如果我有这个。

app = webapp2.WSGIApplication([
  ("/", PostsPage),
  ("/login", LoginPage),
], debug=True)

所以redirect(url_for(LoginPage))会将我重定向到/ login。

2 个答案:

答案 0 :(得分:1)

如果您可以访问传递给WSGIApplication构造函数的参数,那么构建起来相对容易:

class PostsPage:
  pass

class LoginPage:
  pass

urls = [
 ("/", PostsPage),
 ("/login", LoginPage),
]

def url_for(cls):
  return [x[0] for x in urls if x[1] == cls][0]

print url_for(LoginPage)

答案 1 :(得分:1)

您可以将不同的“路线”命名为

  app = webapp2.WSGIApplication([
     webapp2.Route(r'/', handler=PostsPage, name ='main'),
     webapp2.Route(r'/login', handler=LoginPage, name ='login'),
  ], debug = True)

现在,您可以按照建议或使用名称重定向 return self.redirect_to('login')return self.redirect_to( main`)

我已经包含了一个return语句,因为重定向首先在您返回后发生。