日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django-中间件

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django-中间件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.django中間件的5個方法

process_request(self,request)
process_view(self, request, callback, callback_args, callback_kwargs)
process_template_response(self,request,response)
process_exception(self, request, exception)
process_response(self, request, response)

以上方法的返回值可以是HttpResponse對象和None值,如果是None則按照規則繼續執行,如果為HttpResponse對象則直接將對象返回

2.django中間件的執行流程

(1)首先執行process_request函數,中間如果出現異常,則跳轉到當前中間件的response函數中執行并返回。
(2)如果process_request執行結束,則會執行process_view函數,view的功能是與處理函數view執行了一次路由映射
(3)通過response返回給客戶端
(4)process_exception是進行異常捕捉,如果視圖函數view中運行錯誤,則調用此函數進行捕捉
(5)運行視圖函數時,會進行異常捕捉,沒有捕捉到異常則報錯,捕捉到異常則會進行跳轉最底層的response中返回
(6)process_template_response(self,request,response)->了解一下即可

3.自定義中間件

創建目錄Middle,創建middleware.py文件from django.utils.deprecation import MiddlewareMininclass row1(MiddlewareMinin):def process_request(self,request):print("request-1")def process_response(self,request,response):print("response-1)"return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print("view-1")class row2(MiddlewareMinin):def process_request(self,request):print("request-2")def process_response(self,request,response):print("response-2)"return response def process_view(self, request, callback, callback_args, callback_kwargs):print("view-2")class row3(MiddlewareMinin):def process_request(self,request):print("request-3")def process_response(self,request,response):print("response-3)"return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print("view-3")

4.中間件注冊

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','Middle.middleware.Row1',#自定義中間的注冊'Middle.middleware.Row2','Middle.middleware.Row3', ]

注意,中間件的執行順序按照配置自上向下

轉載于:https://www.cnblogs.com/wangxingwei/p/10956130.html

總結

以上是生活随笔為你收集整理的django-中间件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。