【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⽂件中配置⾃定义中间件

相关推荐
WenGyyyL3 分钟前
基于昇腾平台的Qwen大模型推理部署实战:从模型转换到推理(含代码)
人工智能·python·语言模型·nlp·昇腾
q***547511 分钟前
解决no main manifest attribute错误
ide·python·pycharm
言之。34 分钟前
Django MySQL 事务机制与回滚行为说明
数据库·mysql·django
玩大数据的龙威39 分钟前
农经权二轮延包—批量替换签名盖章页扫描页
python
AI视觉网奇1 小时前
手部检测 yolov5 实战笔记
python·深度学习·计算机视觉
WXG10111 小时前
【Flask-7】前后端数据交互
python·ios·flask
hyswl6661 小时前
数字货物搬家小程序
python·小程序
LDG_AGI1 小时前
【推荐系统】深度学习训练框架(六):PyTorch DDP(DistributedDataParallel)数据并行分布式深度学习原理
人工智能·pytorch·分布式·python·深度学习·算法·spark
背心2块钱包邮1 小时前
第24节——手搓一个“ChatGPT”
人工智能·python·深度学习·自然语言处理·transformer
执笔论英雄1 小时前
【大模型推理】小白教程:vllm 异步接口
前端·数据库·python