美文网首页
Django-中间件

Django-中间件

作者: 测试探索 | 来源:发表于2022-09-19 18:05 被阅读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

    相关文章

      网友评论

          本文标题:Django-中间件

          本文链接:https://www.haomeiwen.com/subject/agmdortx.html