zoukankan      html  css  js  c++  java
  • Python

    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/

    运行结果:

  • 相关阅读:
    移动端H5 QQ在线客服链接代码
    sql语句的优化技巧
    获取网页高度
    微信抽奖游戏
    H5中section和article标签之间的区别
    简易版九宫格相加数值相等
    两个单体内置对象_Global和Math
    特殊的引用类型
    引用类型-Array类型(二)~ 前端学习之路
    引用类型-Array类型~ 前端学习之路
  • 原文地址:https://www.cnblogs.com/sch01ar/p/11517128.html
Copyright © 2011-2022 走看看