请求中间件
请求中间件在Django为请求匹配路由之前执行。
一个请求中间件应当实现方法process_request(),其原型如下:
process_request(request)
参数request是一个HttpRequest对象。
请求中间件应当返回None或一个HttpResponse对象。如果返回的是HttpResponse 对象,Django将跳过视图中间件处理、视图函数处理环节。如果返回的是None, Django正常执行其他请求中间件以及后续的环节:
如果有多个请求中间件,那么将按照它们在配置对象的MIDDLEWARE_CLASSES属性中 的顺序一次执行。例如上图中,我们定义了三个请求中间件A、B和C。那么,当一个请求 进来时,Django将先执行A,如果A返回None,那么继续执行B,如果B也返回None, 那么继续执行C。
修改示例代码中的请求中间件C:
1. 为HttpRequest对象增加一个属性myflag,并设置其值为字符串HAHAHA
2. 将其设置为第一个执行的请求中间件
3. 在中间件B中打印输出请求对象的myflag值