Django-中间件

2022-09-19  本文已影响0人  测试探索

Django中的中间件是一个轻量级,底层的插件系统,可以介入django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。

一、中间件的定义方法

Django在中间件中预置了六个方法,这六个方法,会在不同的阶段自动执行,对输入或输出进行干预。

1-1:初始化方法

启动Django程序,初始化中间件时,自动调用一次,用于确定是否启用当前中间件

def __init__(self,get_response=NOne):
    pass
1-2:处理请求前的方法

在处理每个请求前,自动调用,返回None或HttpResponse对象

def process_request(self,request):
    pass
1-3:处理响应后的方法

在每个响应返回给客户端之前,自动调用,返回HttpResponse对象

def process_response(self,request,response):
    pass

二、实际应用

在子应用book下创建中间件文件middleware.py文件

from django.utils.deprecation import MiddlewareMixin


class TestMiddleware(MiddlewareMixin):
    def process_request(self,request):
        print("每次请求前,都会调用执行")
        username = request.COOKIES.get('name')
        if username is None:
            print("无用户信息")
        else:
            print("有用户信息")


    def process_response(self,request,response):
        print("每次响应前都会调用执行")
        return response

在settings.py文件中进行注册

image.png
请求url:http://127.0.0.1:8000/set_cookie/?username=itcast,设置cookie
image.png
image.png
再次请求url:http://127.0.0.1:8000/get_cookie/,获取cookie
image.png
image.png
上一篇下一篇

猜你喜欢

热点阅读