Django 中间件

Django 中间件是修改 Django request 或者 response 对象的钩子,可以理解为是介于 HttpRequest 与 HttpResponse 处理之间的一道处理过程。浏览器从请求到响应的过程中,Django 需要通过很多中间件来处理,可以看如下图所示:
在这里插入图片描述
使用中间件首先需要在settings.py文件中配置,不然后台也不知道你添加了中间件,只会按照默认的中间件流程进行操作
在这里插入图片描述
中间件可以定义四个方法,分别是:

process_request(self,request) #process_request 方法是在视图函数之前执行的
process_view(self, request, view_func, view_args, view_kwargs)#process_view 方法是在视图函数之前,process_request 方法之后执行的
process_exception(self, request, exception)#process_exception 方法只有在视图函数中出现异常了才执行,按照 settings 的注册倒序执行。

在视图函数之后,在 process_response 方法之前执行。
process_response(self, request, response)#process_response 方法是在视图函数之后执行的

这里我先尝试process_request(self,request)以及process_response(self, request, response)

#Middleware.py
from django.utils.deprecation import MiddlewareMixin

class PrintMiddle(MiddlewareMixin):
    def process_request(self,request):
        print('我是在视图函数之前执行的哟')
    
    def process_response(self, request, response):
        print('我是在视图函数之后执行的')
        return response
#views.py
def PM(request):
    print('正在执行视图函数')
    return HttpResponse('hahahaha')
我是在视图函数之前执行的哟
正在执行视图函数
我是在视图函数之后执行的

从下图看,正常的情况下按照绿色的路线进行执行,假设中间件1有返回值,则按照红色的路线走,直接执行该类下的 process_response 方法返回,后面的其他中间件就不会执行。
在这里插入图片描述
Django中间件|菜鸟教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值