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,返回页面如图

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号请求
<function login at 0x000000E597A8E598>
('1',)
view响应
2号响应
1号响应
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容