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
  • 相关阅读:
    Python学习之余,摸摸鱼
    Python 实现斐波那契数
    Linux下为什么目录的大小总是4096
    Python的精髓居然是方括号、花括号和圆括号!
    为什么说Python是最伟大的语言?看图就知道了!
    前端常用知识(会更新)
    Mysql 约束
    Navicat 安装
    Java后台将CTS格式转为标准日期时间格式返回给前端
    MySQL数据库报错“Zero date value prohibited”
  • 原文地址:https://www.cnblogs.com/infaaf/p/9565956.html
Copyright © 2011-2022 走看看