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
  • 相关阅读:
    pathon学习总结(二)pathon的基础语法
    python学习总结(一),第一个python程序的编写
    数组中查找最大值和最小值 (两种方法)
    websocket----聊天室,推送等服务
    django-celery 应用方法
    vue-resource
    Vue-router
    vue 属性绑定
    Vue的生命周期以及钩子函数
    安装 vue 及 组件
  • 原文地址:https://www.cnblogs.com/infaaf/p/9565956.html
Copyright © 2011-2022 走看看