中间件的使用

中间件是全局使用

工厂函数定义中间件

middleware.py

# 工厂函数的中间件
def simple_middleware(get_response):def middleware(request):print("在视图函数处理之前执行、、、、、")response = get_response(request)print("在视图函数处理之后执行。。。。。")return responsereturn middleware

setings.py中注册中间件

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','the_15.middleware.simple_middleware',
]
类定义中间件
# 类定义中间件
from django.utils.deprecation import MiddlewareMixinclass Mwi(MiddlewareMixin):def process_request(self, request):"""如果没有返回值或者返回值为 None 就会继续执行视图函数如果有返回值就不会执行视图函数中的内容,直接返回值,"""print("process_request 在视图函数之前执行、、、、、")passdef process_View(self, request, view_func, view_args, view_kwargs):print('process_View 正在执行中')passdef process_response(self, request, response):"""一定要有返回值"""print("process_response 在视图函数之后执行、、、、、")return response

setings.py中注册中间件 

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',# 'the_15.middleware.simple_middleware','the_15.middleware.Mwi',
]

执行顺序

中间件的属性与方法 
get_response
process_request(self, request)
process_view(self, request, view_func, view_args, view_kwargs)
process_response(self, request, response)
process_template_response(self, request, response)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8715.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钟表——蓝桥杯十三届2022国赛大学B组真题

问题分析 这个问题的关键有两点:1.怎么计算时针,分针,秒针之间的夹角,2.时针,分针,秒针都是匀速运动的,并非跳跃性的。问题1很好解决看下面的代码就能明白,我们先考虑问题2&#xf…

PyQt5批量生成Checkbox及批量检查Checkbox的勾选状态

批量生成Checkbox并添加到TableWidget中 for i in range(10):checkbox_i QCheckBox(fCheckbox_{i}) # 生成Checkbox并命名为Checkbox_iself.ui_1.tableWidget_1.setCellWidget(i,1,checkbox_i) 批量检查勾选状态 # 批量生成Checkbox并存入列表 list_Checkbox_1 [] for …

Tomcat端口占用解决方案

Windows操作系统 出现这种情况: Error was Port already in use :40001;nested exception is :java.net.BindException: Address already in use : JVM_Bind; 步骤1:按下winR键,输入cmd 步骤2:输入以下命令 netstat …

AXI4-Lite读写时序在AXI Block RAM 控制器IP核中的应用

AXI Block RAM (BRAM) 控制器是一个软件IP核,专为与Xilinx Vivado设计套件一起使用而设计。该IP核被设计为AXI端点从设备IP,用于与AXI互联和系统主设备集成,以便与本地块RAM进行通信。 AXI BRAM控制器IP核可以通过设置设计参数C_S_AXI_PROTOC…

anything-llm的嵌入式聊天小部件

anything-llm 详情移步到官方: https://github.com/Mintplex-Labs/anything-llm anything-llm可以docker启动和本地启动 例如:docker 启动, 自行去安装docker哈 cd 到docker文件夹下, 窗口运行: docker-compose up -d --build运…

Qt客户端开发的技术难点

Qt客户端开发中可能会遇到的下面的一些技术难点,了解这些难点并采取有效的措施可以帮助开发者更高效地进行Qt客户端开发。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.跨平台兼容性: Qt框架支持多种操作系…

Leetcode127.单词接龙

https://leetcode.cn/problems/word-ladder/description/?envTypestudy-plan-v2&envIdtop-interview-150 文章目录 题目描述解题思路代码-BFS解题思路二——双向BFS代码 题目描述 字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 …

2024.05.08作业

登陆部分代码 /登陆槽函数 void Widget::btn_clicked() {if(edit1->text()"Admin" && edit2->text()"123456"){//登陆成功对话框QMessageBox box(QMessageBox::Information,"信息对话框","登陆成功",QMessageBox::Ok,t…

制冷机组喷液冷却与经济器的介绍

在制冷机组中,喷液冷却与经济器两者虽同可以为提升制冷系统效率与性能,经济器是一种特殊的换热器,主要用于制冷系统中,以提高系统的效率和性能。通常安装在制冷机组的冷凝器之后、膨胀阀之前的位置,确保在制冷剂流向蒸…

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分,第一部分请点击:基于Hive的教育平台数据仓库分析案例(一) 衔接第二部分,第二部分请点击:基于Hive的教育平台数据仓库分析案例(二) 学生出勤模块(全量分析)&#xff1a…

生产制造中刀具管理系统,帮助工厂不再频繁换刀

一、刀具管理的定义与重要性 刀具管理是指对生产过程中使用的各种刀具进行计划、采购、存储、分配、使用、监控、维修和报废等全过程的管理。刀具作为制造过程中的直接工具,其性能、质量和使用效率直接影响产品的加工精度、表面质量和生产效率。因此,建…

算法学习(6)-最短路径

目录 Floyd-Warshall算法 Dijkstra算法 Bellman-Ford算法 Bellman-Ford的队列优化 最短路径算法对比分析 Floyd-Warshall算法 现在回到问题:如何求任意两点之间的最短路径呢? 通过之前的学习, 我们知道通过深度或广度优先搜索可以求出两…

【 npm详解:从入门到精通】

文章目录 npm详解:从入门到精通1. [npm](https://www.npmjs.com/)的安装2. npm的基础用法2.1 初始化项目2.2 安装依赖2.3 卸载依赖2.4 更新依赖 3. npm的高级用法3.1 运行脚本3.2 使用npm scope3.3 使用npm link 4. npm资源5. 使用npm进行依赖树分析和可视化6. npm进…

使用Nuxt.js实现服务端渲染(SSR)

Nuxt.js 是一个基于 Vue.js 的框架,它提供了服务器端渲染(SSR)和静态站点生成(SSG)的能力,使开发者能够轻松地构建高效、优雅的前端应用。Nuxt.js 集成了许多开箱即用的功能和工具,帮助开发者快…

天诚人脸物联网锁+网约房管理系统为智慧酒店、民宿管理赋能

随着互联网技术的发展,“网约房”逐渐步入受众视野,在改变旅客入住模式和生活方式的同时,为旅客旅游住宿创造了新的选择,也为拥有冗余房间资源的房东提供了新的营收路径。但是,网约房的管理问题频发,需要数…

springcloud alibaba微服务框架涉及的技术

一、微服务架构中核心模块及其使用技术总览 二、各模块详细说明 1、注册中心 该模块主要功能为 自动提供服务的注册与发现,集中式管理服务,让 服务调用端发现服务,让服务提供端注册服务,倘若没有注册中心,那客户端就…

Navicat导出表结构到Excel或Word

文章目录 sql语句复制到excel复制到Word sql语句 SELECTcols.COLUMN_NAME AS 字段,cols.COLUMN_TYPE AS 数据类型,IF(pks.CONSTRAINT_TYPE PRIMARY KEY, YES, NO) AS 是否为主键,IF(idxs.INDEX_NAME IS NOT NULL, YES, NO) AS 是否为索引,cols.IS_NULLABLE AS 是否为空,cols.…

小巧设备,大能量:探索口袋中的远程控制神器

在这个科技日新月异的时代,我们的生活被各种手机软件所包围。几乎每个人都有一个甚至多个手机,你是否也有遇到过需要远程操作自己某一台手机的场景呢?今天,我要向大家推荐一款神奇的手机远程操作神器,让你可以随时随地…

未授权访问:MongoDB未授权访问漏洞

目录 1、漏洞原理 2、环境搭建 3、未授权访问 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验,一共有好多篇,内容主要是参考先知社区的一位大佬的关于未授权访问的好文章,还有其他大佬总结好的文章: 这里附上大佬…

【Chrome实用命令笔记】

文章目录 Chrome实用命令笔记1、chrome基本介绍2. 打开开发者工具(DevTools)方法一:快捷键方法二:右键菜单方法三:浏览器设置 2. 开发者工具面板Elements面板Console面板Sources面板Network面板Performance面板Memory面…