在Django中,我如何为每个函数编写一个?

时间:2011-01-26 18:54:18

标签: python django oop decorator

每当有人加载页面时,我想在控制台中打印“Hello”。

我不想在所有100个视图中添加装饰器。那太傻了。 我希望这个装饰器能够自动添加到我的视图中。 嗯...

1 个答案:

答案 0 :(得分:5)

中间件:http://docs.djangoproject.com/en/dev/topics/http/middleware/#writing-your-own-middleware

定义一个中间件类,覆盖上面定义的一个函数,打印“Hello”,返回相应的对象(根据文档),并将中间件类添加到settings.py

class PrintHelloMiddleware(object):
    def process_response(self, request, response):
        print "Hello"
        return None

# settings.py
MIDDLEWARE_CLASSES = ( # ... usual middleware
                       'path.to.my.middleware.PrintHelloMiddleware',
                      )