- Django 中间件(Middleware)
- 模板上下文处理器(context processor)
① Django 中间件(Middleware)
是一个轻量级、底层的“插件”系统,可以介入 Django 的请求和响应处理过程,修改 Django 的输入或输出。
需要把它添加到 Django 配置文件中的 MIDDLEWARE_CLASSES 元组中。
每个中间件组件是一个独立的 Python 类,可以定义下面方法中的一个或多个
- _init_:无需任何参数,服务器响应第一个请求的时候调用一次,用于确定是否启用当前中间件。
- process_request(request):执行视图之前被调用,在每个请求上调用,返回 None 或 HttpResponse 对象。
- process_view(request, view_func, view_args, view_kwargs):调用视图之前被调用,在每个请求上调用,返回 None 或 HttpResponse 对象。
- process_template_response(request, response):在视图刚好执行完毕之后被调用,在每个请求上调用,返回实现了 render 方法的响应对象。
- process_response(request, response):所有响应返回浏览器之前被调用,在每个请求上调用,返回 HttpResponse 对象。
- process_exception(request, response, exception):当视图抛出异常时调用,在每个请求上调用,返回一个 HttpResponse 对象。
# 例子
与 settings.py 同级目录下创建 mymiddleware.py 文件,定义类 MyException,实现自定义异常 process_exception 方法
续
将类 MyException 注册到 settings.py 中间件中