根据http://pyramid-cookbook.readthedocs.org/en/latest/views/chaining_decorators.html,我可以装饰一个金字塔视图:
@view_config(decorator=a_special_decorator, renderer='json')
def myview(request):
return {'a':1}
可以,但是我需要确保Pyramid应用程序中的每个视图都装饰有a_special_decorator
。有没有一种方法可以确保在实时应用程序或测试阶段都可以做到这一点?
我认为更好的方法是:使用基于类的视图,并从具有要添加的功能的同一基类继承所有视图。
但是,如果您想装饰应用程序中的所有视图,将采用以下方法
创建一个scan()
将Python模块作为输入并读取的方法,有点类似于Pyramid自己的扫描
如果scan()
找到视图函数签名,则它将装饰该函数并就地替换模块中的原始函数
在字母Pyramid本身扫描模块之前调用您的自定义扫描,以便Pyramid将获取“固定”功能
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句