zoukankan      html  css  js  c++  java
  • python中django中间件

    一、中间件

    所谓的中间件,就是存在socket和视图函数中间的一种相当于过滤的机构。

    中间件共分为:

    (1)process_request(self,request)

    (2)process_view(self, request, callback, callback_args, callback_kwargs)

    (3)process_template_response(self,request,response)

    (4)process_exception(self, request, exception)

    (5)process_response(self, request, response)

    1. 自定义中间件

    from django.utils.deprecation import MiddlewareMixin
     class M1(MiddlewareMixin):
         def process_request(self,request):
             print('M1.process_request')
     
         def process_view(self,request,callback,callback_args,callback_kwargs):
             print('M1.process_view')
             response=callback(request,*callback_args,**callback_kwargs)
             return response
     
         def process_response(self,request,response):
             print('M1.process_response')
             return response

    2. 注册中间件

    # 找到settings.py中MIDDLEWARE

    如:

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        'django.middleware.csrf.CsrfViewMiddleware',
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'md.M1',
        'md.M2',
    ]

    3. 中间件执行流程

      用户有访问请求,会从中间件最上方的request(接收)一直往下执行,最后到视图函数然后再由中间件从下往上的response(返回)给用户

    4. 中间件执行过程中有return值流程:用户有访问请求,会从中间件最上方的request(接收)一直往下执行,直到那个中间件有return值后在当前的中间值返回给用户,(在1.7左右版本)会直接跳到最后的中间件,然后返回给用户。

  • 相关阅读:
    emacs 编程入门 函数
    boost库介绍
    jquery css attr
    html 相对定位 绝对 定位 css + div
    我常用的grep
    我常用的tar
    C#皮肤的用法(皮肤资源+使用实例下载)
    C#资源文件操作示例 创建资源和读取资源
    黄聪:c#中高效的excel导入sqlserver的方法
    黄聪:Delphi 中的 XMLDocument 类详解(2) 记要
  • 原文地址:https://www.cnblogs.com/huangjm263/p/8946602.html
Copyright © 2011-2022 走看看