django中的中间件、AOP

本文介绍了Django框架中的中间件机制,它是一个轻量级的底层插件,用于介入请求和响应过程,实现面向切面编程。同时,文章探讨了AOP的概念及其在减少逻辑部分耦合中的作用。并详细说明了Django中间件的调用顺序、如何定义切入点及创建自定义中间件的步骤,包括在settings中启用中间件的配置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中间件;

中间件是一个轻量级的底层的插件,可以介入Django的请求和响应过程(面向切面编程),其本质就是一个python类

面向切面编程(Aspect Oriented Programming)简称AOP,AOP的主要实现目的时针对业务处理过程中的切面进行提取,他所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分低耦合的隔离效果

调用顺序

 中间件注册的时候是一个列表
 如果我们没有在切点处直接进行返回,中间件会依次执行
 如果我们直接进行了返回,后续中间件就不再执行了

–可切入点

process_requestclient——urls
process_viewurls——views
process_templates_responseviews—…—templates
process_responsetemplates——client

–切入函数

__init__没有参数,服务器响应第一个请求的时候自动调用,用户确定是否启用该中间件
process_request(self, request)在执行视图前被调用,每个请求上都会调用,不主动进行返回或返回HttpResponse对象
process_view(self,request, view_func, view_args, view_kwargs)调用视图之前执行,每个请求都会调用,不主动进行返回或返回HttpResponse对象
process_templates_response(self, request, response)在视图刚好执行完后进行调用,每个请求都会调用,不主动进行返回或返回HttpResponse对象
process_response(self, request, response)所有响应返回浏览器之前调用,每个请求都会调用,不主动进行返回或返回HttpResponse对象
process_exception(self, request, exception)视图抛出异常时调用,不主动进行返回或返回HttpResponse对象

自定义中间件流程

  1. 在工程目录下创建middleware目录

  2. 目录中创建一个python文件

  3. 在python文件中导入中间件的基类

    from django.utils.deprecation import MiddlewareMixin"
    
  4. 在类中根据功能需求,创建切入需求类,重写切入点方法

    class LearnAOP(MiddlewareMixin):
        def process_request(self, request):
            print('request的路径', requeest.GET.path)"
    
  5. 启用中间件,在settings中进行配置,MIDDLEWARE中添加middleware.文件名.类名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值