1.django 的中间件,从代码角度上来看,本质上是闭包的一种实现
中间件的作用:验证是否登录、处理每次访问的日志 等等。
官方参考文档

2.django 的中间件执行时机: 在每次的请求和响应都会执行

3.多个中间件时,执行的顺序是:
a.在请求视图被处理前,中间件由上至下依次执行
b.在请求视图被处理后,中间件由下至上依次执行

4.代码实现
a.中间件代码文件可以随意放置,我将其放到应用的文件夹里面

b.app01.middleware.py

def simple_middleware1(get_respone):    # 这里的代码只有第一次请求才会执行,后续再请求就不会再执行了    # print('simple_middleware1: 第一次请求才会打印,我们的请求到达时,我都不会打印了')    def middleware(request):        # 处理请求到达前的代码        print('simple_middleware1: 收到请求了')        response = get_respone(request)        # 处理请求被响应后的代码        print('simple_middleware1: 请求响应完了')        return response    return middlewaredef simple_middleware2(get_respone):    # 这里的代码只有第一次请求才会执行,后续再请求就不会再执行了    # print('第一次请求才会打印,我们的请求到达时,我都不会打印了')    def middleware(request):        # 处理请求到达前的代码        print('simple_middleware2: 收到请求了')        response = get_respone(request)        # 处理请求被响应后的代码        print('simple_middleware2: 请求响应完了')        return response    return middleware

c.在项目的配置文件中注册自定义的中间件

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',    # 注册自定义的中间件    'app01.middleware.simple_middleware1',     'app01.middleware.simple_middleware2',]

d.请求结果

©著作权归作者所有:来自51CTO博客作者J4ck0r的原创作品,如需转载,请注明出处,否则将追究法律责任

每一份赞赏源于懂得

赞赏

0人进行了赞赏支持

更多相关文章

  1. 【小白笔记】Elastic Search使用Rest风格请求的CRUD
  2. 炫酷,SpringBoot+Echarts实现用户访问地图可视化(附源码)
  3. Spring MVC请求与响应
  4. jQuery中的$.ajax方法,以及基本的vue指令操作
  5. Laravel框架入门和基本使用(二)
  6. 如何解决跨域问题?
  7. 消息中间件-技术专区-RocketMQ架构原理
  8. 如何用nodeJs向别的服务器上传文件发送formData数据?
  9. js基础知识:Ajax的get,post异步请求 及 选项卡、换肤实例

随机推荐

  1. nginx1.19.1自动安装部署脚本
  2. 利用端口扫描进行终端合规性检查的一个示
  3. 动画:散列表 | 文本编辑器是如何检查英文
  4. 认命,但就不服命!
  5. Linux学习之linux的find命令如何使用?
  6. python数据类型的强制转换
  7. 动画:面试必刷之对称的二叉树
  8. 字符串处理函数
  9. 就说一件事!
  10. Spring Cloud分布式微服务实战(养成应对复