所以我知道您可以在GAE中从继承自webapp2.RequestHanlder
的类中使用以下方法重定向:
class Foo(webapp2.RequestHandler):
def get(self):
self.redirect('https://google.com')
虽然这是可行的,但是能够在类之外执行重定向将是非常好的。在
例如,假设您有以下代码是全局函数-即它不存在于类中:
^{pr2}$如果可以从函数重定向,则可以检查状态代码并重定向到错误页。E、 g
if result.status_code != 200:
urllib2.urlopen('/error_page.html')
return
不幸的是,上面的代码在GAE中什么也不做,生成了以下警告。在
WARNING 2014-05-22 21:58:24,364 urlfetch_stub.py:482] Stripped prohibited headers from URLFetch request: ['Host']
那么有没有一种方法可以在类之外执行重定向呢?在
您可以创建自己的
Exception
子类来处理重定向。在我这样做的方法是创建我自己的
webapp2.RequestHandler
子类,它覆盖handle_exception
方法(See the docs)使用此功能,您实际上可以创建范围广泛的自定义异常,以轻松管理预期。例如,您还可以创建一个
NotFound
异常,将状态代码设置为404并呈现“找不到页面”消息。在要使重定向发生,请引发
RedirectError
。在简单到
raise RedirectError("http://www.google.com")
。在相关问题 更多 >
编程相关推荐