博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
中间件
阅读量:6463 次
发布时间:2019-06-23

本文共 1567 字,大约阅读时间需要 5 分钟。

什么是中间件:中间件是一个处理Django的请求和响应的框架级别的钩子.

中间件的本质:在Django中就是一个类,在全局范围内改变Django的输入和输出.

                     Django请求流程图

中间件的五个方法:

        process_request(self,request)

        执行时间:  在视图函数执行之前

        参数:    request  跟视图函数中的是同一个

        执行顺序:  按照注册顺序  顺着执行

        返回值:  None  正常流程

            HttpResponse对象:

                    不执行后面中间件中的process_request方法,不执行视图函数,

                    直接执行当前中间件中的process_response方法,后面正常走.

       process_response(self,request,response)

       执行时间:在视图函数执行之后

       参数:request    跟视图函数中的是同一个

         response    视图函数中传递的响应对象

       执行顺序:按照注册顺序  倒叙执行

       返回值:HttpResponse对象:  必须是响应对象

       process_view(self,request,view_func,view_args,view_kwargs)

       执行时间:在process_request方法之后,在视图函数执行之前

       参数:request  跟视图函数中的是同一个

             view_func  视图函数

             view_args  视图函数的位置参数

             view_kwargs  视图函数的关键字参数

       执行顺序:按照注册顺序  顺着执行

       返回值:  None  正常流程

           HttpResponse对象:不执行后面中间件中的process_view方法,不执行视图函数,直接执行最后一个中间件中的process_response方法,后面正常走

       process_exception(self,request,exception)

       执行时间:出现异常的时候才执行

       参数:  request  跟视图函数中的是同一个

            exception  异常对象

       执行顺序:  按照注册顺序  倒叙执行

       返回值:  None  正常流程

           HttpResponse对象:不执行后面中间件中的process_exception方法,直接执行最后一个中间件中的process_response方法,后面正常走

       process_template_response(self,request,response)

       执行时间:视图函数返回的response对象有一个叫render的方法

       参数:request  跟视图函数中的是同一个

          response  视图函数中传递的响应对象

       执行顺序:按照注册顺序  倒叙执行

       返回值:必须返回response对象

         

           

 

转载于:https://www.cnblogs.com/leo-tail-x/p/10098634.html

你可能感兴趣的文章
Probabilistic Graphical Models-Template Models
查看>>
PAT 1110 Complete Binary Tree[判断完全二叉树]
查看>>
年终报告
查看>>
【Android】日常开发android.jar文件中十五个重要的包概述
查看>>
java中如何在代码中判断时间是否过了10秒
查看>>
Centos 5.1 sendmail邮件服务器安装及配置
查看>>
迅速学会PHP加密解密技巧
查看>>
C++ 开源库
查看>>
公用技术——设计模式24——空对象模式——待补充
查看>>
mysql 分区
查看>>
http-server让你在任何目录下都可以创建web服务
查看>>
thinkphp 关联模型 注意点
查看>>
gradle 学习
查看>>
ECharts
查看>>
无阻塞加载外部js(动态脚本元素,XMLHttpRequest注入,LazyLoad)
查看>>
IMU误差模型与校准
查看>>
Android二维码扫描、生成
查看>>
查找图标搜索引擎
查看>>
JVM的年轻代GC过程
查看>>
小峰servlet/jsp(6)jstl核心标签库
查看>>