Django----中间件middleware

中间件middleware

  • 使用前的配置

    • 新建一个与app同级别的文件夹

    • 文件夹中新建py文件,创建middle类. 必须继承MiddlewareMixin类

    • 在setting.py中注册中间件

      • MIDDLEWARE = [
        	...
            'middleware.mymiddleware.MyMiddleware' # 新建的middleware类
        ]
        

    注:有多个中间件时,按照注册时,从上往下执行

  • 使用

    class MyMiddleware(MiddlewareMixin):
        def process_request(self, request):
            """
            :param request: 只有这一个参数
            :return: 返回None,或者不写返回值,或者返回HttpResponse类(子类)
            """
            print("进入主路由之前执行")
            request.data = "aaa"    # 可以将需要传的值给request,在视图函数中可以取到
    
        def process_view(self, request, view_func, view_args, view_kwargs):
            """
            :param request:  
            :param view_func: Django 即将使用的视图函数
            :param view_args: 将传递给视图的位置参数的列表
            :param view_kwargs: 将传递给视图的关键字参数的字典。
            :return: 返回None,或者不写返回值,或者返回HttpResponse类(子类)
            """
            print("执行视图函数前执行")
            print(view_func)
    
        def process_response(self, request, response):
            """
            :param request: 
            :param response:  必须要有这个响应参数!!!
            :return: 必须要有返回(HttpResponse类(子类)) !!!
            """
            print("响应之后执行的")
            return response
    
        def process_exception(self, request, exception):
            print("错误时执行")
            print(exception)
            return HttpResponse("页面出错了")
    

    视图函数可以取出存在request中的值

    data = request.data
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值