一、中间件
--中间件是一个轻量级、底层的插件系统,可以加入Django的请求和响应过程,修改Django的输入和输出
--每一个中间件组件是一个独立的Python类,可以定义下面方法中的一个和多个
--__init__:无需要任何参数,服务器响应的第一个请求的时候调用一次,用于确定是否启用当前的中间件
--process_request(request):执行视图之前被调用,在每个请求上调用,返回None或 HttpResponse对象
--process_view(request,view_func,view_args,view_kwargs):调用视图函数之前被调用,在每个请求上被调用,返回None或HtppResponse对象
--process_template_response(request,response):在视图刚好执行完毕之后被调用,再每一个请求上调用,返回实现了render方法的响应对象
--process_response(request,response):所有响应返回浏览器之前被调用,在每一个请求上调用,返回HttpResponse对象
--process_exception(request,response,exception):当视图抛出异常是调用,在每个请求上调用,返回一个HttpResponse对象
a、中间件是什么?
--中间件是一个类
b、返回值注意是什么?
--无返回值:继续执行后续函数中间件和视图函数
--有返回值:有返回值执行process_response和上面的response
c、中间件做过什么:
--用户登录
--日志记录
--权限管理
--session
--csrf
d、中间件和装饰器的区别
--中间件用于批量操作,装饰器用于单个