【django】自定义中间件
生活随笔
收集整理的這篇文章主要介紹了
【django】自定义中间件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一. ?定義中間件
1、Django中的中間件是?個輕量級、底層的插件系統,可以介?Django的請求和響應處理過程,修改Django的輸?或輸出。中間件的設計為開發者提供了?種?侵?式的開發?式,增強了Django框架的健壯性。
2、我們可以使?中間件,在Django處理視圖的不同階段對輸?或輸出進??預。
二. 實現步驟
1、項?根?錄下創建python package
2、?定義?個python?件
from django.utils.deprecation import MiddlewareMixin
3. settings?件中配置?定義中間件
4. 配置URL
urlpatterns = [path('register/',views.UserView.as_view()), ]5. 創建視圖
class UserView(View):def get(self,request):return HttpResponse('get請求')def post(self,request):return HttpResponse('post請求')def put(self,request):return HttpResponse('put請求')def patch(self,request):return HttpResponse('patch請求')def delete(self,request):return HttpResponse('delete請求')6. 瀏覽器訪問
http://127.0.0.1:8000/film/register/
7. 運?結果
三.多個中間件的執?順序
1、在請求視圖被處理前,中間件由上?下依次執?
2、在請求視圖被處理后,中間件由下?上依次執?
四.其他內容
1、在每個中間件中添加以下代碼:
from django.utils.deprecation import MiddlewareMixinclass MyMiddle1(MiddlewareMixin):def process_request(self,request):print('處理請求中間件1')def process_response(self,request,response):print('處理響應中間件1')return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print('process_view-1')return Noneclass MyMiddle2(MiddlewareMixin):def process_request(self, request):print('處理請求中間件2')def process_response(self, request, response):print('處理響應中間件2')return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print('process_view-2')return Noneclass MyMiddle3(MiddlewareMixin):def process_request(self, request):print('處理請求中間件3')def process_response(self, request, response):print('處理響應中間件3')return responsedef process_view(self, request, callback, callback_args, callback_kwargs):print('process_view-3')return None執行結果:
2. 其他: views函數如果出現異常,返回會找exception?法,?級?級往上找,如果有處理返回,如果都沒有處理就直接返回報錯了。
總結
以上是生活随笔為你收集整理的【django】自定义中间件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【django】全局上下文
- 下一篇: 【django】类视图