django之中间件

Posted zhang-yl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django之中间件相关的知识,希望对你有一定的参考价值。

1、什么是中间件

顾名思义中间件就是介于request和response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入和输出。因为改变的是全局,所以需要谨慎使用,用不好反而会影响性能。

如果你想修改请求,例如被传送到view中的HttpRequest对象。 或者你想修改view返回的HttpResponse对象,这些都可以通过中间件来实现。

2、中间件在django整体中的示意图

技术分享图片

3、自定义中间件

中间件一共有四个方法

process_request     #用户发起请求时会经过

process_view            #当到达url关系映射后回调视图函数

process_exception     #视图函数出错时

process_response     #给用户响应时经过

 

> 一般只会用到request和response,当只有这两个方法时

执行流程如下

技术分享图片

 

>当有response、response和view时,执行流程如下

技术分享图片

>当四个方法都有时执行流程如下

技术分享图片

 

 3、应用场景

> 服务器IP访问频率限制

> URL过滤、用户校验

 

以上是关于django之中间件的主要内容,如果未能解决你的问题,请参考以下文章

Django进阶之中间件

django框架之中间件

django之(中间件)middleware

Django之中间件浅析

Django之中间件

Django之中间件