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

相关推荐
忘忧记1 分钟前
pytest进阶参数化用法
前端·python·pytest
JavaWeb学起来8 分钟前
Python学习教程(二)字符串
开发语言·python·python基础
归寻太乙12 分钟前
2026年03月27日—Python基础—Python背景知识与环境搭建
开发语言·python
独隅15 分钟前
PyTorch 的全面介绍
人工智能·pytorch·python
小陈工16 分钟前
Python后端实战:GraphQL高级应用与性能优化全解析
开发语言·人工智能·后端·python·性能优化·开源·graphql
代码探秘者17 分钟前
【大模型应用】一篇弄懂Skill
数据结构·数据库·python·算法·spring
运维行者_32 分钟前
Applications Manager 中的 Azure 监控
运维·服务器·网络·数据库·后端·python·flask
2501_9383134036 分钟前
用Python实现自动化的Web测试(Selenium)
前端·python·自动化
tryCbest36 分钟前
Python之FastAPI 高级特性总结与完整项目实战
开发语言·python·fastapi
jiankeljx42 分钟前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构