小玉的小本本 2021-10-27 18:26 采纳率: 0%
浏览 30

django 自定义中间件如何忽略部分视图函数

换个说法提问:django 视图函数如何跳过部分自定义中间件?

有没有类似于跳过 csrf 中间件的方式来跳过自定义中间件呢?
类似于:

# views
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def ceshi_1(request):
    print('ceshi_1')
    return JsonResponse({})

我知道一种跳过的方式: 在中间件中过滤 URL,但是感觉比较麻烦

# 自定义 middleware
class CeShi:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        if '/main/' in request.path_info:
            return self.get_response(request)
        
        print('进入中间件')
        response = self.get_response(request)
        pass
        return response
  • 写回答

1条回答 默认 最新

  • CSDN专家-黄老师 2021-10-28 09:39
    关注

    只能在中间件中过滤 URL,HTTP请求进来是经过中间件再到视图,你看看django生命周期就知道HTTP请求的处理先后顺序,还可以从信号机制这个功能着手,这个是将django各个功能解耦的,其中包含了HTTP请求的处理
    如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢

    评论

报告相同问题?

问题事件

  • 创建了问题 10月27日