AttributeError: ‘TestMiddleware‘ object has no attribute ‘get_response‘

本文深入探讨了Django中间件的实现原理,包括中间件类的初始化过程,以及请求和响应周期中各中间件方法的调用时机。通过具体代码示例,详细解释了process_request、process_view和process_response等方法的作用。

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

from django.http import HttpResponse
from django.utils.deprecation import MiddlewareMixin


class TestMiddleware(MiddlewareMixin):
    '''中间件类'''

    def __init__(self,get_response):
        '''服务器重启后接收第一个请求调用'''
        self.get_response = get_response
        print('-----init-----')
# 想了很久才找到原因,django 3.0版本的问题
    # def __call__(self, request):
    #     print('111111')
    #     return self.get_response(request)

    def process_request(self,request):
        '''产生request对象之后,url匹配之前调用'''
        print('---process_request---')

    def process_view(self,request,view_func,view_args,view_kwargs):
        '''url匹配之后,在Django调用视图之前被调用'''
        print('----process_view---')

    # def process_template_response(self,request, response):
    def process_response(self, request, response):
        '''视图函数调用之后,内容返回浏览器之前'''
        print('---process_response---')
        return response
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值