引言—— 举个小例子来讲讲: 比如:你登录一个网站,进去主页面的时候网站会显示你是否登录,你访问此网站的别的页面的时候也都会显示你是否登录。 难道你要在项目里的每个视图里都进行一次登录与否的判断么!!!这不是很麻烦了, 这时候就可以借助中间件十分简单的实现,我们只需要自定义一个中间件,重写其中的方法process_request(self,request) :,在此方法中进行登录与否的判断即可!因为此方法是在执行视图之前被调用,而且是用户的每个请求都会调用! 这就是中间件的牛逼之处!!!
现在你看这个图可能有点迷,等你给本篇文看完之后再看这个图会感觉真牛逼哈哈!
大致按照下面图讲一下流程: 用户发送请求(request)给网站,先经过中间件,然后给到urls,最终到视图层; 视图层返回响应(response)给用户,先经过中间件,最终到用户。
**请求以自上而下的顺序通过所有的层,view视图函数处理之后,响应以自下而上的顺序通过所有的层,期间经过的每个中间件都会对请求或者响应进行处理。 **
小提醒:自定义中间件也可以放在该项目的任意可以导入的地方(但是习惯性是放在 app根目录里面)
步骤:
将自定义的中间件类MyException注册到settings.py中间件中: mucis是项目名,先找到文件所在的位置,把自定义的中间件的类添加到MIDLEWARE的列表当中!
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。