网站建设备案流程图,免费舆情网站下载,游戏制作软件中文版下载,网站建设丶金手指花总14中间件
开发django项目是#xff0c;涉及全局相关功能#xff0c;都可以使用中间件实现。
1.请求时#xff0c;需要经过中间件#xff0c;才能到达真正的django后端。
2.响应走的时候#xff0c;也要经过中间件#xff0c;才能出去。 依次经过里面的中间件进出#x…中间件
开发django项目是涉及全局相关功能都可以使用中间件实现。
1.请求时需要经过中间件才能到达真正的django后端。
2.响应走的时候也要经过中间件才能出去。 依次经过里面的中间件进出django自带7个中间件。 必须掌握的
1. process_request(self,request)a.请求来时执行每个中间件的requesetb. 执行顺序配置文件中的注册由上到下c. 中间件没有request,就跳过执行下一个中间件d. 如果该方法放回HttpResponse对象那么请求就不在执行下去原路返回。process_request方法用于全局相关的条件限制。 2.process_response(self, request, response) return responsea. response 就是django后端返回的内容,需要return response也可以替换自定义的。 b. 响应走的时候经过每个中间件从下往上。*django如果中间件request返回就执行同级的response 返回。flask 也有中间件但会全部执行。需要了解的
3.process_view(self, request, view_func, view_args, view_kwargs)路由匹配成功后视图函数前。4.process_template_response(self,request,response)返回HttpRespone 有render属性时候才触发。5.process_exception(self, request, exception)当视图函数报错的时候自动触发
如何定义中间件
1. 在项目名或应用名下创建一个任意名称的文件夹
2. 在文件夹内创建一个任意名称的py文件
3.在py文件内容需要书写类。这个类必须继承MiddlewareMixin 然后在里面可以自定义5个方法用几个写几个
4. 将类的路径以字符串形式注册到配置文件夹中才能生效。
class Mymd1(MiddlewareMixin):def process_request(self,request):print(我是第一个自定义中间件里面的process_request方法)# return HttpResponse(我是第一个中间件返回的Httpresponse对象)def process_response(self,request,response):print(我是第一个中间件里面的process_reponse方法)return response # 就是后端返回给前端浏览器的响应数据def process_view(self,request,view_func,*args,**kwargs):print(view_func,args,kwargs)print(我是第一个中间件里面的process_view)def process_template_response(self,request,response):print(我是第一个中间件里面的process_template_reponse方法)return responsedef process_exception(self,request,exception):print(exception:,exception)print(我是第一个中间件里面的process_exception)参考https://www.cnblogs.com/guyouyin123/p/12193772.html