django中间件

中间件与请求钩子相似(flask之中的),可以在app应用之中在 middleware.py之中

'''
    定义了中间件!视图函数每次调用都会以触发中间件!
    将中间件注册到setting 之中
    如果设置了多个中间件,调用前在setting之中自上到下,调用后,自下到上
    中间件需要在设置文件之中指定中间件位置!
'''def simple_middleware(get_responses):
    # print('11111111111')
    # 第一次加载配置文件执行此处的代码段
    def middleware(request):
        '''此处是试图函数调用之前!'''
        print('1这是中间件之前!')
        responses = get_responses(request)
        '''视图函数调用之后!'''
        print('1这是中间件之后!')
        return responses

    return middleware


def simple_middleware2(get_responses):
    # 第一次加载配置文件执行此处的代码段
    def middleware(request):
        '''此处是试图函数调用之前!'''
        print('2这是中间件之前!')
        responses = get_responses(request)
        '''视图函数调用之后!'''
        print('2这是中间件之后!')
        return responses

    return middleware

在setting之中注册中间件!

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',  #跨站请求伪造!
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 自定义中间件!
    # 'classmeth.middleware.simple_middleware',
    # 'classmeth.middleware.simple_middleware2'

]

 

posted @ 2018-06-14 23:08  十七楼的羊  阅读(114)  评论(0编辑  收藏  举报