Django: 路由与视图 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

异常中间件

如果Django调用视图函数的过程中发生了异常,将调用异常中间件。

一个异常中间件应当实现process_exception()方法,其原型如下:

process_exception(request,exception)

同样,异常中间件应当返回None或一个HttpResponse对象。如果返回的是一个 HttpResponse对象,那么将继续执行后续的模板响应中间件、响应中间件;如果 返回的是一个None,那么Django将跳过后续环节,直接调用默认的异常处理。

mw-except

如果有多个异常中间件,那么Django将按照它们在配置对象的MIDDLEWARE_CLASSES 属性中注册的逆序执行。例如上图中,我们定义了三个异常中间件A、B和C。那么, 当视图函数出现异常时,Django将先执行C,如果C返回None,那么继续执行B,如果B也返回None, 那么继续执行A。

修改示例代码中的异常中间件,让第一个执行的异常中间件接管异常。