CSIC_716_20200114【Django入门---django中间件、csrf跨站请求伪造、auth认证】
作者:互联网
中间件
凡是全局相关的功能,都可以考虑使用中间件来实现。例如:全局的身份校验、访问频率校验、访问黑名单、访问白名单。
中间件总共有5个方法可以使用:
process_request: 请求从web服务网关接口传到中间件层时,会按照先后顺序依次执行每一个中间件里的process_request方法,遇到没有process_request的中间件会直接跳到下一个中间件。如果不满足其中任何一个就会被拒绝访问。如果process_request返回了一个值HttpResponse对象,那么程序就会从此原路返回,返回的路线要么经过process_response,如果没有process_response也能直接通过HttpResponse返回到前端。 process_response 当执行完视图函数后,程序会按照与process_request相反的顺序执行process_response方法。 该方法必须要有return返回值,否则报错。一般是return response,也可以自己返回一个HttpResponse替换从视图函数传过来的值,外层可以偷换内层传出来的东西 process_view 在中间件放行后,执行视图函数之前,会执行process_view process_template_response 他在视图函数执行完之后,process_response执行前执行,他的执行顺序和process_response一样,顺序反向。他触发的条件是:视图函数返回的对象中必须要有render属性对应的render方法。 process_exception 在视图函数报错的时候触发,顺序也是反向的。
标签:跨站,process,716,中间件,request,视图,执行,response 来源: https://www.cnblogs.com/csic716/p/12194242.html