重修课程day62(django之中间件)

中间件:

class MiddleWare2(MiddlewareMixin):

        def process_request(self,request):
            print("MW2  request...........")
            # return HttpResponse("666!")
        def process_view(self, request, callback, callback_args, callback_kwargs):

            # print("callback",callback)
            # print("callback_args",callback_args)
            #callback(request)
            print("MW2 process_view.....")    

        def process_exception(self,request,exception):
            print("MW2 process_exception...")
            print(exception)

            return HttpResponse("<h1 style=‘color:green‘>%s</h1>"%exception)

        def process_response(self,request, response):  # HttpResponse("yuan")
            print("MW2  response...........")
            return response

 process_request:请求的内容

 process_view:用来调用视图函数,如果有返回值回直接执行process_response

 process_exception:报错的信息

 process_response:响应的内容

执行顺序:

 如果只有请求和响应:

  

 加上process_view:

  

 在加上process_exception:

  

原文地址:https://www.cnblogs.com/fangjie0410/p/8168114.html

时间: 2024-11-09 05:06:45

重修课程day62(django之中间件)的相关文章

django 自定义中间件 middleware

Django 中间件 Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性,其它的MVC框架也有这个功能,名称为IoC. Django在中间件中预置了五个方法,这五个方法的区别在于不同的阶段执行,对输入或输出进行干预,方法如下: 1)初始化:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件. def __init__(

Django组件:中间件

一.中间件的概念 中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响到性能. Django的中间件的定义: Middleware is a framework of hooks into Django’s request/response processing. <br>It’s a light, low-level “plugin” system for gl

Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块

目录 使用Django对中间件的调用思想完成自己的功能 功能要求 importlib模块介绍 功能的实现 csrf中间件详细介绍 跨站请求伪造 Django csrf中间件 form表单 ajax csrf相关装饰器 在CBV上加csrf装饰器 Django settings源码剖析及模仿使用 Django settings源码剖析 查看内部配置文件 模仿使用 Auth模块 auth简介 auth模块常用方法 创建用户 校验用户名和密码 保存用户登录状态 判断当前用户是否登录 校验原密码 修改密

重修课程day57(Django的开始)

一 浏览器相关知识 http:只有依赖一回,属于短链接,不会报错客户端的信息. 浏览器相当于一个客户端,客户端的链接 服务端:socket服务端,起服务监听客户端的请求. import socket sk=socket.socket() sk.bind(('192.168.11.38',8888)) sk.listen(5) def index(): with open('轮播网页.html',encoding='utf-8')as f: ret=f.read() return ret def

重修课程day61(django之补充)

一 QuerySet类型 QuerySet类型:只和orm有关,如果一涉及数据库,就会有QuerySet类型的出现. QuerySet切片操作:QuerySet是支持切片操作的,不过不能放负数.查询集的切片会返回一个新的查询集,不会执行查询. Entry.objects.all()[:5] # (LIMIT 5) Entry.objects.all()[5:10] # (OFFSET 5 LIMIT 5) QuerySet遍历操作: # for book in bookList: # print

重修课程day59(django之http)

一 http协议介绍 http协议(Hyper Text Transfer Protocol):超文本传输协议,是基于应用层的面向对象协议,靠tcp协议和IP来传输数据,请求和响应是http协议的基本概念. http协议工作于客户端与服务端架构之上,浏览器作为http客户端通过url向HTTP服务端发送所有请求. 二 http特点 1 简单快速:浏览器向服务端发送请求时,只需要传送请求的方法和路径. 请求方法:GET,POST,HEAD,不同方法有着不同的联系类型. 2 灵活:http传输可以是

django的中间件

这个就是中间件的流程 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件,如下图. 与mange.py在同一目录下的文件夹 wupeiqi/middleware下的auth.py文件中的Authentication类 中间件中可以定义四个方法,分别是

Django:之中间件、微信接口和单元测试

Django中间件 我们从浏览器发出一个请求 Request,得到一个响应后的内容 HttpResponse ,这个请求传递到 Django的过程如下: 也就是说,每一个请求都是先通过中间件中的 process_request 函数,这个函数返回 None 或者 HttpResponse 对象,如果返回前者,继续处理其它中间件,如果返回一个 HttpResponse,就处理中止,返回到网页上. 中间件不用继承自任何类(可以继承 object ),下面一个中间件大概的样子:

Django补充——中间件、请求的生命周期等

一:中间件 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在django项目的settings模块中,有一个 MIDDLEWARE_CLASSES 变量,其中每一个元素就是一个中间件,如下图. 与mange.py在同一目录下的文件夹 wupeiqi/middleware下的auth.py文件中的Authentication类 中间件中可以定义四个方法,分别是: pro