【Django】中间件实现钩子函数预处理和后处理,局部装饰视图函数

  1. 在app文件夹里新建middleware.py
  2. 继承MiddlewareMixin, 编写中间件类,重写process_requestprocess_response钩子函数
python 复制代码
from django.http import HttpRequest, HttpResponse
from django.utils.decorators import decorator_from_middleware
from django.utils.deprecation import MiddlewareMixin

class MyMiddleware(MiddlewareMixin):
    def __init__(self, get_response=None):
        super().__init__(get_response)
    
    def process_request(self, request: HttpRequest) -> None:
        """视图函数前 钩子函数"""
        ...
        pass
    
    def process_response(self, request: HttpRequest, response: HttpResponse) -> HttpResponse:
        """视图函数后 钩子函数"""
        ...
        return response

# 中间件类包装成装饰器
my_middleware = decorator_from_middleware(MyMiddleware)
  1. 使用@MyMiddleware装饰视图函数

如果要全局使用中间件

需要在settings⽂件中配置⾃定义中间件

相关推荐
云梦泽࿐้几秒前
变量与数据类型:Python世界的基石
开发语言·python
开发小能手-roy8 分钟前
Lambda表达式性能陷阱:避坑指南与JIT编译优化分析
开发语言·python
风吹夏回11 分钟前
RabbitMQ 核心术语 + Python pika 方法完整讲解
分布式·python·rabbitmq
爱读书的小胖12 分钟前
无偿分享ChatGPT Image 2画图网页与并发绘图python程序【Ai绘图】
开发语言·python·chatgpt
cvcode_study14 分钟前
Scikit-learn
python·机器学习·scikit-learn
vortex523 分钟前
新手前后端开发学习指南:从Flask框架到全栈实践
后端·python·flask
你是个什么橙25 分钟前
Python入门学习1:安装配置开发环境——Python或Annaconda,Pycharm
python·学习·pycharm
xxwl58543 分钟前
Python语言初步认识(1)
开发语言·python·学习
古城小栈1 小时前
Python 的主流Ai框架为什么优先适配 Linux 系统?
linux·人工智能·python