Django--中間件

Django中間件

  Django默認由七個中間件 

  

 

 

 

  WSGI、wsgiref、uwsgi的區別

    WSGI是協議

    wsgiref和uwsgi是實現該協議的模塊

 

Django默認有七個中間件,但是Django暴露給用戶可以自定義中間件,並且裏面可以寫五種方法

ps:

  1、在Django中請求來的時候會依次執行每一箇中間件裏面的process_request方法(如果沒有直接通過)

  2、響應走的時候會依次執行每一箇中間件裏面的process_response方法(如果沒有直接通過)

 

 

Django中自定義中間件

  1、在app中新建一個任意名字的文件夾,裏面新建一個任意名字的py文件

  2、在文件中創建一個類,然後在類中寫process_request方法以及process_response方法(切記不要打錯)

  3、然後在setting中的中間件中將這個類添加進去

 

Django中間件中的五個方法:  

  • process_request(self,request)
  • process_view(self, request, view_func, view_args, view_kwargs)
  • process_template_response(self,request,response)
  • process_exception(self, request, exception)
  • process_response(self, request, response)

以上方法的返回值可以是None或一個HttpResponse對象,如果是None,則繼續按照Django定義的規則向後繼續執行,如果是HttpResponse對象,則直接將該對象返回給用戶  

 

 

 如果process_request中返回了Httpresponse對象,那麼會立即返回,不會繼續執行其他的中間件

 

 如果process_request方法中返回了httpresponse對象,那麼會走同級別的process_response方法,依次往回走

 

 

Django請求生命週期

 

 

Django中間件能夠幫我們實現網站全局的身份驗證,黑名單,白名單,訪問頻率的限制,反爬相關的內容       

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章