django中间件说明

Django中间件是一种在请求和响应处理过程中介入的机制,允许你在视图处理请求之前或之后执行自定义代码。中间件适用于处理全局性任务,如身份验证、日志记录、内容修改等。以下是Django中间件的详细说明和使用方法:


一、中间件的核心概念

  1. 作用阶段
    请求阶段:在路由到视图之前处理请求(如身份验证)。
    视图阶段:在调用视图前后执行操作(如权限检查)。
    响应阶段:在返回响应前修改内容(如添加HTTP头)。
    异常阶段:处理视图或中间件抛出的异常(如统一错误处理)。

  2. 中间件类方法
    process_request(request): 在路由到视图前调用。
    process_view(request, view_func, view_args, view_kwargs): 在视图被调用前执行。
    process_response(request, response): 在所有响应返回前处理。
    process_exception(request, exception): 处理视图抛出的异常。
    process_template_response(request, response): 处理模板响应(如修改上下文)。


二、创建自定义中间件

1. 编写中间件类
# myapp/middleware/custom_middleware.py
import logging
from django.http import HttpResponseForbidden

logger = logging.getLogger(__name__)

class SimpleLoggingMiddleware:
    """记录请求日志的中间件"""
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # 请求处理前
        logger.info(f"Request started: {
     
     request.method} {
     
     request.path}")

        response = self.get_response(request)  # 继续处理链

        # 响应处理后
        logger.info(f"Request finished: {
     
     request.method} {
     
     request.path}{
     
     response.status_code}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值