zoukankan      html  css  js  c++  java
  • Django中间键

    from django.utils.deprecation import MiddlewareMixin
    
    
    class MyMiddleware(MiddlewareMixin):
        def process_request(self,request):
            print('request')
    
        def process_response(self,request,response):
            print('response')
            #自定义中间件当消息从视图函数返回必须要在中间process_reponse中返回response
            #不然会丢失
            return response
        def process_view(self,request,view_func,view_args,view_kwargs):
            print('第一个中间件中的视图函数')

    配置文件

    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',
        'app01.mymiddleware.aaa.MyMiddleware'
    ]

    django的请求生命周期

    执行的顺序:

    当中间件中都没有process_views函数时

      当有request请求时,先从上到下执行中间件中的process_request函数,执行完接着执行

      视图函数,视图函数执行完就从下到上执行中间件中的process_response函数

      当process_request函数返回None时,中间件往下执行,当返回HttpResponse时,

      这个中间件往下的中间件都不会执行,直接从这个中间件的process_response函数往回执行

  • 相关阅读:
    memwatch使用简化
    memwatch检测内存泄露
    mtrace检测内存泄露
    2.14 环境变量及参数
    设计模式[索引]
    二叉树遍历
    AppCan 双击返回按钮退出应用
    MySQL语句相关经验总结
    mysql连接失败或出现“Too many connections”错误
    让IE的Button自适应文字宽度兼容
  • 原文地址:https://www.cnblogs.com/huikejie/p/11222193.html
Copyright © 2011-2022 走看看