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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

django15:中间件

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

中間件

開發django項目是,涉及全局相關功能,都可以使用中間件實現。

1.請求時,需要經過中間件,才能到達真正的django后端。

2.響應走的時候,也要經過中間件,才能出去。

?

依次經過里面的中間件進出,django自帶7個中間件。

?

必須掌握的: 1. process_request(self,request)a.請求來時,執行每個中間件的requesetb. 執行順序,配置文件中的注冊,由上到下c. 中間件沒有request,就跳過,執行下一個中間件d. 如果該方法放回HttpResponse對象,那么請求就不在執行下去,原路返回。process_request方法用于全局相關的條件限制。 2.process_response(self, request, response) return responsea. response 就是django后端返回的內容,需要return response也可以替換自定義的。 b. 響應走的時候經過每個中間件,從下往上。*django如果中間件request返回,就執行同級的response 返回。flask 也有中間件,但會全部執行。需要了解的: 3.process_view(self, request, view_func, view_args, view_kwargs)路由匹配成功后,視圖函數前。4.process_template_response(self,request,response)返回HttpRespone 有render屬性時候才觸發。5.process_exception(self, request, exception)當視圖函數報錯的時候自動觸發

如何定義中間件

1. 在項目名或應用名下,創建一個任意名稱的文件夾

2. 在文件夾內,創建一個任意名稱的py文件

3.在py文件內容,需要書寫類。(這個類必須繼承MiddlewareMixin)

? 然后在里面可以自定義5個方法,用幾個寫幾個

4. 將類的路徑以字符串形式注冊到配置文件夾中才能生效。

class Mymd1(MiddlewareMixin):def process_request(self,request):print('我是第一個自定義中間件里面的process_request方法')# return HttpResponse("我是第一個中間件返回的Httpresponse對象")def process_response(self,request,response):print('我是第一個中間件里面的process_reponse方法')return response # 就是后端返回給前端瀏覽器的響應數據def process_view(self,request,view_func,*args,**kwargs):print(view_func,args,kwargs)print('我是第一個中間件里面的process_view')def process_template_response(self,request,response):print('我是第一個中間件里面的process_template_reponse方法')return responsedef process_exception(self,request,exception):print('exception:',exception)print('我是第一個中間件里面的process_exception')

?

?

?

參考:https://www.cnblogs.com/guyouyin123/p/12193772.html

?

總結

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

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