django_中间件(view层有参数使用)

一、使用场景

url('/login/(\d+)',views.login)这种的url对应view层def login(request,nid),这样时候中间过滤器就给使用process_view(self,request,fun,fun_args,fun_kwargs)方法来进行接收,现实request请求,然后process_view用来接收参数,在逐层返回,最后response,返回页面如图

django_中间件(view层有参数使用)_第1张图片
image.png

代码如下:

from django.utils.deprecation import MiddlewareMixin
from  django.shortcuts import HttpResponse
class test1(MiddlewareMixin):
    def process_request(self,request):
        print("1号请求")

       
    #接收函数参数
    def process_view(self,request,fun,fun_args,fun_kwargs):
        print(fun)
        print(fun_args)

    def process_response(self,request,response):
        print("1号响应")
        return  response


class test2(MiddlewareMixin):
    def process_request(self, request):
        print("2号请求")

    def process_response(self, request, response):
        print("2号响应")
        return response

打印结果

1号请求
2号请求

('1',)
view响应
2号响应
1号响应

你可能感兴趣的:(django_中间件(view层有参数使用))