【发布时间】:2016-02-26 17:36:27
【问题描述】:
我正在编写一个 GAE 应用程序(并使用 webapp2 框架和 jinja2 作为模板渲染器),我希望用装饰器包装我的所有 GET 和 POST 方法。装饰器检查用户是否可以访问此页面,如果没有,它应该显示错误消息。
问题是,在装饰器内部,我不能使用 self.response.write 来显示错误消息,因为装饰器是一种方法,它不会“扩展”webapp2.请求处理程序。
装饰器代码如下:
def checkpriv(classNo, errorMsg):
def wrapFunction(method):
if checkprivileges(classNo):
return method
else:
logging.info(users.get_current_user().nickname() + errorMsg)
# NEED TO DISPLAY ERROR MESSAGE HERE
return wrapFunction
我试图创建一个扩展 webapp2.RequestHandler 的类并在装饰器中初始化它的一个对象,但我得到这个错误 404 GET method is not allowed.
【问题讨论】: