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函数往回执行

  • 相关阅读:
    centos,ubuntu下安装zabbix遇到的问题
    代理环境下使用 ADDAPTREPOSITORY 添加 PPA 软件源
    Linux文件系统挂载管理
    Log4j配置详解
    myeclipse快捷键
    Linux用户基础(用户和组)
    C语言I博客作业07
    C语言I博客作业02
    C语言I博客作业08
    C语言I博客作业04
  • 原文地址:https://www.cnblogs.com/huikejie/p/11222193.html
Copyright © 2011-2022 走看看