django15:中间件
生活随笔
收集整理的這篇文章主要介紹了
django15:中间件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
中間件
開發(fā)django項目是,涉及全局相關(guān)功能,都可以使用中間件實現(xiàn)。
1.請求時,需要經(jīng)過中間件,才能到達真正的django后端。
2.響應走的時候,也要經(jīng)過中間件,才能出去。
?
依次經(jīng)過里面的中間件進出,django自帶7個中間件。
?
必須掌握的: 1. process_request(self,request)a.請求來時,執(zhí)行每個中間件的requesetb. 執(zhí)行順序,配置文件中的注冊,由上到下c. 中間件沒有request,就跳過,執(zhí)行下一個中間件d. 如果該方法放回HttpResponse對象,那么請求就不在執(zhí)行下去,原路返回。process_request方法用于全局相關(guān)的條件限制。 2.process_response(self, request, response) return responsea. response 就是django后端返回的內(nèi)容,需要return response也可以替換自定義的。 b. 響應走的時候經(jīng)過每個中間件,從下往上。*django如果中間件request返回,就執(zhí)行同級的response 返回。flask 也有中間件,但會全部執(zhí)行。需要了解的: 3.process_view(self, request, view_func, view_args, view_kwargs)路由匹配成功后,視圖函數(shù)前。4.process_template_response(self,request,response)返回HttpRespone 有render屬性時候才觸發(fā)。5.process_exception(self, request, exception)當視圖函數(shù)報錯的時候自動觸發(fā)如何定義中間件
1. 在項目名或應用名下,創(chuàng)建一個任意名稱的文件夾
2. 在文件夾內(nèi),創(chuàng)建一個任意名稱的py文件
3.在py文件內(nèi)容,需要書寫類。(這個類必須繼承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 # 就是后端返回給前端瀏覽器的響應數(shù)據(jù)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
?
總結(jié)
以上是生活随笔為你收集整理的django15:中间件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: django14:CBV加入装饰器
- 下一篇: django16: csrf跨站请求伪造