1. 程式人生 > >Django中介軟體的處理流程

Django中介軟體的處理流程

1、中介軟體介紹

  wsgi之後 urls.py之前 在全域性 操作Django請求和響應的模組!

2、中介軟體的方法

2.1、process_request

  執行順序:
       按照註冊的順序(在settings.py裡面設定中 從上到下的順序)
  何時執行:

    請求從wsgi拿到之後
  返回值:

    返回None,繼續執行後續的中介軟體的process_request方法
    返回response , 不執行後續的中介軟體的process_request方法

2.2、process_response

  執行順序:

    按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)
  何時執行:

    請求有響應的時候
  返回值:

    必須返回一個response物件

2.3、process_view

  process_view(self, request, view_func, view_args, view_kwargs)

  執行順序:

    按照註冊的順序(在settings.py裡面設定中 從上到下的順序)
  何時執行:

    在urls.py中找到對應關係之後 在執行真正的檢視函式之前
  返回值:

    返回None,繼續執行後續的中介軟體的process_view方法   

    返回response,

2.4、process_exception

  執行順序:

    按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)
  何時執行:

    檢視函式中丟擲異常的時候才執行
  返回值:   

    返回None,繼續執行後續中介軟體的process_exception

    返回response,

2.5、process_template_response

  執行順序:

    按照註冊順序的倒序(在settings.py裡面設定中 從下到上的順序)
  何時執行:

    檢視函式執行完,在執行檢視函式返回的響應物件的render方法之前
  返回值:

    返回None,繼續執行後續中介軟體的process_exception

    返回response,