我正在尝试根据 haiti Todos 之一在 web2py 中为自定义错误页面实现装饰器。参考 - http://web2py.com/AlterEgo/default/show/75
我试图将它作为一个模块保存在 /modules 目录中,以便我可以将它导入控制器并适当地放置装饰器。
我将错误处理装饰器保留为 /modules/onerror.py
并像这样从控制器说(或.py)导入它-
exec('from applications.%s.modules.onerror import onerror as onerror'
% request.application)
HTTP 对象在 onerror.py 中不可用,所以我做了一个 -
from gluon.http import *
但后来我意识到请求对象也不能像行中那样对装饰器可用 -
filename=os.path.join(request.folder,'views/errors/error%i.html'%status)
我有些疑惑 -
/modules 目录是保存这种可重用组件的好地方吗?
/modules 目录中的模块是否会在创建新的 web2py 实例时自动加载?如果是这样,我如何在控制器中访问它们?
有没有办法可以将请求对象从我的控制器传递给这个装饰器?欢迎提示。
我当前的 onerror.py - http://paste.pocoo.org/show/186165/ 我试图在控制器中使用的方式 - http://paste.pocoo.org/show/186167/
让我知道我是否以不明显的方式这样做。