Python 确保金字塔应用程序中的每个视图都使用自定义装饰器进行装饰

Python 确保金字塔应用程序中的每个视图都使用自定义装饰器进行装饰,python,web,pyramid,pylons,Python,Web,Pyramid,Pylons,根据,我可以装饰金字塔视图: @view_config(decorator=a_special_decorator, renderer='json') def myview(request): return {'a':1} 好的,但我需要确保Pyramid应用程序中的每个视图都使用特殊的装饰器装饰。无论是在live app中还是在测试阶段,有没有一种方法可以确保这一点?我认为更好的方法是:使用基于类的视图,并从具有您尝试添加的功能的同一基类继承所有视图 但是,如果您想在应用程序中修饰所

根据,我可以装饰金字塔视图:

@view_config(decorator=a_special_decorator, renderer='json')
def myview(request):
    return {'a':1}

好的,但我需要确保Pyramid应用程序中的每个视图都使用
特殊的装饰器装饰。无论是在live app中还是在测试阶段,有没有一种方法可以确保这一点?

我认为更好的方法是:使用基于类的视图,并从具有您尝试添加的功能的同一基类继承所有视图

但是,如果您想在应用程序中修饰所有视图,则可以采用以下方法

  • 创建一个
    scan()
    方法,该方法将Python模块作为输入并通读,有点类似于Pyramid自己的扫描

  • 如果您的
    scan()
    找到一个视图函数签名,它将修饰该函数并替换模块中的原始函数

  • 在字母金字塔本身扫描模块之前调用自定义扫描,以便金字塔将拾取“固定”函数


使用此装饰器,您到底想实现什么?我想为每个视图提供类似视图模型的功能。