zoukankan      html  css  js  c++  java
  • django middleware

    图片来自网络

    process_request  -->  url ---> process_view  --> view   ---> process_response 

    测试

    自定义middleware

    app01.middlewaretest.py  包含5个方法可以定制

    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    from django.utils.deprecation import MiddlewareMixin
    
    class Mid2(MiddlewareMixin):
        def process_request(self,request):
            print('process_requst 2')
            pass
        def process_view(self, request, callback, callback_args, callback_kwargs):
            print('process_view 2')
            pass
    
        def process_template_response(self, request, response):
            print('process_template 2')
            pass
    
        def process_exception(self, request, exception):
            print('process_except 2')
            pass
    
        def process_response(self, request, response):
            print('process_response 2')
            return response
    
    
    class Mid3(MiddlewareMixin):
        def process_request(self,request):
            print('process_requst 3')
            pass
        def process_view(self, request, callback, callback_args, callback_kwargs):
            print('process_view 3')
            pass
    
        def process_template_response(self, request, response):
            print('process_template 3')
            pass
    
        def process_exception(self, request, exception):
            print('process_except 3')
            pass
    
        def process_response(self, request, response):
            print('process_response 3')
            return response
    View Code

    setting中顺序

    MIDDLEWARE = [
        ......
        默认略
        ......
        'app01.middlewaretest.Mid2',
        'app01.middlewaretest.Mid3',
    ]
    View Code

    view

    def index2(request):
        # print(request.id)
        print("in view of fbv...")
        return HttpResponse('a')
    View Code

    日志,正常访问未触发到process_template_response与process_exception

    [31/Aug/2018 15:46:56] "GET /index2/ HTTP/1.1" 200 1
    process_requst 2
    process_requst 3
    process_view 2
    process_view 3
    in view of fbv...
    process_response 3
    process_response 2
    View Code
  • 相关阅读:
    k8s运行容器之Job应用(6)
    k8s创建资源的两种方式及DaemonSet应用(5)
    kubernetes架构及deployment应用(4)
    docker部署harbor私有镜像库(3)
    k8s集群部署(2)
    kubernetes介绍(1)
    Docker网络(5)
    Docker存储(4)
    Docker镜像的仓库及底层依赖的核心技术(3)
    Docker的镜像及容器常用操作(2)
  • 原文地址:https://www.cnblogs.com/infaaf/p/9565956.html
Copyright © 2011-2022 走看看