中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。可以介入Django的请求和响应
一个Python类
App同级->创建工程目录middleware
|-App |-middleware |–myMiddle.py |-project
在middleware里 创建一个python文件 myMiddle.py
<span class="hljs-keyword">from</span> django.utils.deprecation <span class="hljs-keyword">import</span> MiddlewareMixin
<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyMiddle</span><span class="hljs-params">(MiddlewareMixin)</span>:</span>
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">process_request</span><span class="hljs-params">(self, request)</span>:</span>
print(<span class="hljs-string">"get参数为:"</span>, request.GET.get(<span class="hljs-string">"arg"</span>))
print(<span class="hljs-string">"请求方法"</span>, request.method)
<span class="hljs-comment">#HTTP_USER_AGENT</span>
<span class="hljs-keyword">if</span> request.META[<span class="hljs-string">'REMOTE_ADDR'</span>] == <span class="hljs-string">'127.0.0.1'</span>:
<span class="hljs-keyword">return</span> HttpResponse(<span class="hljs-string">'抱歉 您不能进行访问'</span>)
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">process_exception</span><span class="hljs-params">(self,request,exception)</span>:</span>
print(str(exception))
<span class="hljs-keyword">return</span> redirect(<span class="hljs-string">'/'</span>) <span class="hljs-comment"># 如果出现异常去首页</span>
使用自定义中间件
配置settings.py文件
MIDDLEWARE中添加
'middleware.myMiddle.MyMiddle'