首页 > 其他 > 详细

Django的生命周期与中间件的流程

时间:2021-01-22 16:51:25      阅读:18      评论:0      收藏:0      [点我收藏+]
Django生命周期图

技术分享图片

Django的中间件
第一步中间件在setting.py的MIDDLEWARE列表中进行注册
写一个类让其继承MiddlewareMixin类(from django.utils.deprecation import MiddlewareMixin)
第三步就可以在其类中重写父类的5中方法
这些方法中的参数都是与视图函数参数对应的
process_request(self, request)  主要方法。请求刚进来时,执行视图函数之前调用。
process_view(self, request, callback, callback_args, callback_kwargs)  URL路由匹配成功后,执行视图函数之前调用(不执行函数),拿到视图函数对象,及其所有参数。
process_exception(self, request, exception)  执行视图函数中遇到异常时调用。
process_template_response(self, request, response)  很少用。执行了render()渲染方法后调用。
process_response(self, request, response)  主要方法。执行视图函数结束之后有响应时调用。(每个方法中retuen response 他才会走上一个中间件的process_response方法)
中间件的流程:
首先第一步会执行中间件列表中的使用的process_request(self, request)方法,当达最后一个中间件后会执行路由匹配(不执行视图函数),然后又重第一个中间件开始执行process_view(self, request, callback, callback_args, callback_kwargs)方法,执行到最后一个中间件后执行路由匹配---->视图函数返回值,在执行process_response(self, request, response)方法由中间件最后一个往第一个原路执行,最后返回给用户
其中如果process_request(self, request)与process_view(self, request, callback, callback_args, callback_kwargs)如果遇见return render,httpresponse,redirect会直接从该中间件往回执行process_response(self, request, response)

Django的生命周期与中间件的流程

原文:https://www.cnblogs.com/KingOfCattle/p/14312927.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!