Django中间键Middleware的使用

本文深入探讨Django中间件的工作原理,包括其在请求/响应处理中的作用、如何激活及编写自定义中间件,以及Django提供的内置中间件介绍。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

中间件是 Django 请求/响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统,用于全局改Django 的输入或输出。每个中间件组件负责做一些特定的功能。

例如,Django 包含一个中间件组AuthenticationMiddleware,它使用会话将用户与请求关联起来。他的文档解释了中间件是如何工作的,如何激活中间件,以及如何编写自己的中间件。

Django 具有内置的中间件,你可以直接使用。它们被记录在 built-in middleware reference 中。

中间件类:中间件类须继承自 django.utils.deprecation.MiddlewareMixin中间件类须实现下列五个方法中的一个或多个:
d
ef process_request(self, request): 执行视图之前被调用,在每个请求上调用回None或HttpResponse对象

def process_view(self, request, callback, callback_args,callback_kwargs): 调用视图之前被调用,在每个请求上调用,返回None或HttpResponse对象

def process_response(self, request, response): 所有响应返回浏览器之前被用,在每个请求上调用,返回HttpResponse对象

def process_exception(self, request, exception): 当处理过程中抛出异常时用,返回一个HttpResponse对象

def process_template_response(self, request, response): 在视图刚好执行之后被调用,在每个请求上调用,返回实现了render方法的响应对象

注: 中间件中的大多数方法在返回None时表示忽略当前操作进入下一项事件,当返HttpResponese对象时表示此请求结果,直接返回给客户端

编写中间键类:
from django.http import HttpResponse, Http404
from django.utils.deprecation import MiddlewareMixin
class MyMiddleWare(MiddlewareMixin):
def process_request(self, request):
print(“中间件方法 process_request 被调用”)
def process_view(self, request, callback, callback_args, callback_kwargs):
print(“中间件方法 process_view 被调用”)
def process_response(self, request, response):
print(“中间件方法 process_response 被调用”)

return response
def process_exception(self, request, exception):
print(“中间件方法 process_exception 被调用”)
def process_template_response(self, request, response):
print(“中间件方法 process_template_response 被调用”)
return response

在settings.py中注册中间键:

MIDDLEWARE = [

‘middleware.mymiddleware.MyMiddleWare’, ]

可以使用中间键来增加验证码
在爬虫scrapy框架中可以使用中间键来增加User-Agent 或者随机生成代理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值