美文网首页
django_中间件(view层无参数使用)

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

作者: 两点半的杂货铺 | 来源:发表于2018-02-03 21:06 被阅读10次

一、什么是中间插件

我理解的中间插件就是过滤器的一起,所有的请求,先到中间插件过滤,过滤后进行url匹配,到对应的view方法,response返回给中间插件,中间插件蹭蹭层层返回给用户。根据这个描述我们可以画个图

image.png

二、如何配置中间件
创建一个文件目录


image.png

导入中间件文件目录

image.png

通过代码验证猜想

  • 知识点from django.utils.deprecation import MiddlewareMixin继承类
  • 接受请求的方法名process_request()
  • 返回响应的方法名process_response()
  • 参数reuqest等同于view中的request
from django.utils.deprecation import MiddlewareMixin
from  django.shortcuts import HttpResponse
class test1(MiddlewareMixin):
    def process_request(self,request):
        print("1号请求")


    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

打印结果,其中我在view层加了一个print输出

1号请求
2号请求
view响应
2号响应
1号响应

当中间插件过滤到问题时,返回的机制当在过滤器中遇到了不会合格的,不会经过view层只会直接返回,如图


image.png

代码如下:

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


    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

相关文章

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

    一、什么是中间插件 我理解的中间插件就是过滤器的一起,所有的请求,先到中间插件过滤,过滤后进行url匹配,到对应的...

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

    一、使用场景 url('/login/(\d+)',views.login)这种的url对应view层def lo...

  • Thinkphp5.1 中间件如何使用?

    Thinkphp5.1 中间件如何使用? 1.中间件的作用: 在请求到达应用层之前,对请求携带的头信息,参数信息,...

  • 中间件参数

    - 在设置中间件的时候设置中间件:参数 - 在中间件的handle 方法中设置参数。然后就可以使用了

  • 三、参数的传递与视图解析器

    一、本课目标 二、参数传递 如何把参数从view层传递给controller示例代码: 此时如果使用第一个访问地址...

  • Django_中间件

    Django的中间件的简介 Django的中间件类似于linux中的管道符Django的中间件实质就是一个类,类之...

  • redux-saga

    redux提供状态管理,但不能很好地处理异步操作。这时候需引入中间件中间件一般是在 View层发送 Action ...

  • 理解addchildviewcontroller

    之前在使用ViewController的时候需要增加View层总是使用addsubView添加N个View,...

  • Express中间件的使用

    Express就是一系列中间件的使用。 中间件 大白话:携带 req、res、next三个参数的函数就是中间件函数...

  • 使用MVP设计模式

    说明 使用MVP设计模式进行解耦 View层 Activity,Fragment为view层的成员,负责初始化各种...

网友评论

      本文标题:django_中间件(view层无参数使用)

      本文链接:https://www.haomeiwen.com/subject/wvzuzxtx.html