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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

【django】自定义中间件

發布時間:2025/3/21 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【django】自定义中间件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一. ?定義中間件

1、Django中的中間件是?個輕量級、底層的插件系統,可以介?Django的請求和響應處理過程,修改Django的輸?或輸出。中間件的設計為開發者提供了?種?侵?式的開發?式,增強了Django框架的健壯性。
2、我們可以使?中間件,在Django處理視圖的不同階段對輸?或輸出進??預。

二. 實現步驟

1、項?根?錄下創建python package
2、?定義?個python?件

from django.utils.deprecation import MiddlewareMixin

from django.utils.deprecation import MiddlewareMixinclass MyMiddle1(MiddlewareMixin):def process_request(self,request):print('處理請求中間件1')def process_response(self,request,response):print('處理響應中間件1')return responseclass MyMiddle2(MiddlewareMixin):def process_request(self, request):print('處理請求中間件2')def process_response(self, request, response):print('處理響應中間件2')return responseclass MyMiddle3(MiddlewareMixin):def process_request(self, request):print('處理請求中間件3')def process_response(self, request, response):print('處理響應中間件3')return response

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】自定义中间件的全部內容,希望文章能夠幫你解決所遇到的問題。

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