django-中间件

1.django中间件的5个方法

process_request(self,request)
process_view(self, request, callback, callback_args, callback_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)

以上方法的返回值可以是HttpResponse对象和None值,如果是None则按照规则继续执行,如果为HttpResponse对象则直接将对象返回

2.django中间件的执行流程

(1)首先执行process_request函数,中间如果出现异常,则跳转到当前中间件的response函数中执行并返回。
(2)如果process_request执行结束,则会执行process_view函数,view的功能是与处理函数view执行了一次路由映射
(3)通过response返回给客户端
(4)process_exception是进行异常捕捉,如果视图函数view中运行错误,则调用此函数进行捕捉
(5)运行视图函数时,会进行异常捕捉,没有捕捉到异常则报错,捕捉到异常则会进行跳转最底层的response中返回
(6)process_template_response(self,request,response)->了解一下即可

3.自定义中间件

创建目录Middle,创建middleware.py文件from django.utils.deprecation import MiddlewareMininclass row1(MiddlewareMinin):def process_request(self,request):print("request-1")def process_response(self,request,response):print("response-1)"return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print("view-1")class row2(MiddlewareMinin):def process_request(self,request):print("request-2")def process_response(self,request,response):print("response-2)"return response    def process_view(self, request, callback, callback_args, callback_kwargs):print("view-2")class row3(MiddlewareMinin):def process_request(self,request):print("request-3")def process_response(self,request,response):print("response-3)"return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print("view-3")

4.中间件注册

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','Middle.middleware.Row1',#自定义中间的注册'Middle.middleware.Row2','Middle.middleware.Row3',
]

注意,中间件的执行顺序按照配置自上向下

转载于:https://www.cnblogs.com/wangxingwei/p/10956130.html

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

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

相关文章

第四十期:十年生死两茫茫,Linux QQ突然复活!

就在 1024 将将过去的深夜,突然,有人在 QQ 群内丢了一个链接和一句话“Linux QQ 发布了”,顿时在静悄悄的 QQ 群内,大家纷纷冒了出来。一时间,群内就和开了锅一样热闹,大家纷纷抄起心爱的土琵琶 Linux&…

数据结构二——链表

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 底层存储 数组:一块连续的内存空间。 链表:用指针串起来的一组零散的内存空间。 链表分类:单链表、双向链表、循环链表 单链表…

[Bugku][Web][CTF] 30-33 write up

【说明】 整合资源 简略版本2020Bugku write up web30 关键字: txt or file_get_contents(fn)知识点:filegetcontents(fn) 知识点: file_get_contents(fn)知识点:fileg​etc​ontents(fn) 联想 php://input 步骤: 1.1…

UML作业第五次:分析系统,绘制状态图

一. PlantUML状态图 语法学习小结 1.简单状态 我们使用[*]开始和结束状态图,使用-->添加箭头。 startuml [*] --> Test1 Test1 --> [*] Test1 : this is a test Test1 : this is another testTest1 -> Test2 Test2 --> [*] enduml 2.更改状态渲染 我…

第四十一期:从Windows到鸿蒙——操作系统的前世与今生

世界上操作系统生意做得最好的是微软,但是世界上第一个做操作系统生意的不是微软,Windows也不是世界上最好用的系统。 作者:苏亚 “做一个操作系统的技术难度不大,难度大的是生态。”——任正非 华为被谷歌断供之后&#xff0c…

算法一——排序

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 分析排序算法的角度 算法的执行效率 算法的执行效率一般从时间复杂度以及比较、交换次数来考虑。 时间复杂度 时间复杂度需要考虑最好情况、最坏情况、平均情况时…

[Bugku][Crypto][CTF][2020]Crypto 1-20 write up

工具:CaptEncoder https://www.freebuf.com/sectool/188397.html Convert:https://pan.baidu.com/s/17YPXfvBHl_HyA00AffTBvg 密码:skqw 推荐网站:http://ctf.ssleye.com/ Crypto 1 关键字: 莫斯 /.- 步骤:莫斯解码得…

《我的十年图像生涯》—王郑耀(西安交通大学)

最近看王郑耀的《我的十年图像生涯》颇有感悟,在此把他的资料总结下 参考: 1.王郑耀《我的十年图像生涯》博客 链接——https://www.cnblogs.com/jsxyhelu/p/7054573.html 里边有自己这十年的经历; 2.王郑耀《数字图像的边缘检测》本科论文 链…

第四十二期:Linux转正日常办公电脑到底行不行

昨天是中国程序员们自定义的程序员日,阿里在秀食堂,另一网络巨头腾讯也不甘寂寞地小蹭了一下这个节日:发布了Linux QQ 2.0 beta,宣告Linux版QQ回归。 作者:电脑报 昨天是中国程序员们自定义的程序员日,阿…

算法二——二分查找

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 思考题目 1 用最省内存的方式查找数据。 2 快速定位ip所在省市 二分查找的速度 二分每次都通过跟区间中的中间元素对比,将待查找的区间缩小为一半&…

[Kali][VMware][2020][窗口大小][分辨率]高分辨率自适应

1.Vmware->查看->自动调整大小->自动适应窗口 2.Kali现在提供了HiDPI模式。此模式可调整GTK,QT甚至基于Java的界面的缩放比例,因此用户无需手动修改每个界面。您可以通过从应用程序菜单中打开“ Kali HiDPI模式”或kali-hidpi-mode从终端运行来…

第四十三期:Wireshark网络分析就这么简单,你一定会喜欢的技巧

拿到一个网络包时,我们总是希望它是尽可能小的。操作一个大包相当费时,有时甚至会死机。如果让初学者分析1GB以上的包,估计会被打击得信心全无。所以抓包时应该尽量只抓必要的部分。 作者:科技yuan 一、抓包 拿到一个网络包时&a…

Beta冲刺(9/7)——2019.5.31

作业描述 课程软件工程1916|W(福州大学)团队名称修!咻咻!作业要求项目Beta冲刺(团队)团队目标切实可行的计算机协会维修预约平台开发工具Eclipse团队信息 队员学号队员姓名个人博客地址备注221600207黄权焕https://www.cnblogs.co…

数据结构三——跳表

文章出处:极客时间《数据结构和算法之美》-作者:王争。该系列文章是本人的学习笔记。 跳表的由来 说明:图片来自极客时间 由来   二分查找的数据结构是数组,利用数组随机访问的特定查找的时间复杂度是O(logn)。如果数据结构是…

[BUGKU][CTF][MISC][2020] MISC writeup持续更新中

CTF总结 ctf基本操作:https://blog.csdn.net/mafucan/article/details/106886421 zip: https://www.anquanke.com/post/id/86211 找软件推荐网址 1.https://www.52pojie.cn/ 2.没有的话百度一下 去找百度云 工具下载: stegSolve 隐写分析 需要配置Java…

spring学习(1):初始项目

1打开idea----new project 2点击建立项目的类型maven 点击next 3点击next 4选择路径&#xff0c;点击完成 5建立成功之后修改pom.xml配置文件 添加&#xff0c;解决依赖关系 <dependencies><dependency><groupId>org.springframework</groupId><ar…

while语句学习

while语句 while [break][continue] break 退出当前循环continue 退出当前循环&#xff0c;并重新循环。执行语句可以是单个语句或语句块。判断条件可以是任何表达式&#xff0c;任何非零、或非空&#xff08;null&#xff09;的值均为true。 当判断条件假false时&#xff0c;循…

[密码学][困难问题][常见规约]密码学问题常见困难问题

参考网址(科学上网) 密码学问题常见困难问题,需要点击参考网址进行查找 其困难问题的介绍非常友好&#xff0c;请根据目录快速找到相关资料 以下是检索 目录 Discrete logarithm problem DLP: discrete logarithm problem CDH: computational Diffie-Hellman problem SDH:…

数据结构四——散列表(下)

文章出处&#xff1a;极客时间《数据结构和算法之美》-作者&#xff1a;王争。该系列文章是本人的学习笔记。 7 散列表链表的应用 很多情况下散列表会和链表一起使用。散列表可以通过key查找value。链表可以按照value进行排序。这样就能通过value查找key&#xff0c;也可以通…

spring学习(2):初始化spring程序

接着上一节的课程继续学习 MesasageService 类 package hello;import org.springframework.stereotype.Component; //注解的加入 Component public class MesasageService {public MesasageService() {super();System.out.println("MessageService...");}/*** 执行打…