Django自定义中间件的添加与注册

Django中间件即request请求前或过程中执行的代码,中间件通俗说就是python的一个类,Django自身自带了了很多自带中间件,如下未Django默认自带的中间件,如session以及csrf安全处理模块等:

# django项目中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',
]

那么如何添加自定义中间件呢

1、在项目跟目录建一个目录 middleware,意为中间件目录,接着在middleware中创建一个my_middleware.py文件(文件名可随意)

# 这个类需要继承django的中间件方法,因此需要导入如下
from django.utils.deprecation import MiddlewareMixin

from django.http import HttpResponse

class My_middleware(MiddlewareMixin):

    # request请求时执行
    def process_request(self, request):
        
        # 此处可以编写代码

    # response返回过程执行
    def process_response(self, request):
        
        # 此处可以编写代码

2、中间件的注册

打开setting配置文件找到 MIDDLEWARE

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',

    'middleware.my_middleware.My_middleware’,    # 此为注册的中间件

]

 

你可能感兴趣的:(Django自定义中间件的添加与注册)