Python - Django - 中間件 process_exception


process_exception(self, request, exception) 函數有兩個參數,exception 是視圖函數異常產生的 Exception 對象

process_exception 函數的執行順序是按照 settings.py 中設置的中間件的順序的倒序執行

process_exception 函數只在視圖函數中出現異常的時候才執行,它返回的值可以是 None,也可以是一個 HttpResponse 對象

如果返回 None,則繼續由下一個中間件的 process_exception 方法來處理異常

如果返回 HttpResponse,將調用中間件中的 process_response 方法

middleware_test.py:

from django.utils.deprecation import MiddlewareMixin
from django.shortcuts import HttpResponse


class Test(MiddlewareMixin):
    def process_request(self, request):
        print("這是一個中間件 --> test")

    def process_exception(self, request, exception):
        print("這里是 Test 的 process_exception")
        print(exception)


class Test2(MiddlewareMixin):
    def process_request(self, request):
        print("這是一個中間件 --> test2")

    def process_exception(self, request, exception):
        print("這里是 Test2 的 process_exception")
        print(exception)

views.py:

from django.shortcuts import HttpResponse


def index(request):
    print("這里是 index 頁面")
    raise ValueError("這是一個錯誤")
    return HttpResponse("這里是主頁面 index")

訪問,http://127.0.0.1:8000/index/

 

運行結果:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM