GAE webapp允许将单个处理程序映射到路径:
application = webapp.WSGIApplication([
('/login', gae_handlers.UserLogin),
], debug=True)
我有什么方法可以拥有一系列请求处理程序吗?
我想拥有在所有其他处理程序运行之前进行身份验证的处理程序。
答案 0 :(得分:5)
您可以使用装饰器或WSGI中间件来执行此操作。
在this answer中有一个使用装饰器的好例子。 Nick Johnson的AEoid项目使用中间件方法。
答案 1 :(得分:0)
我找到了另一种方式
class ExtendedRequest(google.appengine.ext.webapp.WSGIApplication.REQUEST_CLASS):
# I can basically do anything here
def get_session_id(self):
return self.cookies.get('session_id')
google.appengine.ext.webapp.WSGIApplication.REQUEST_CLASS = ExtendedRequest