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