Django中间件实现拦截器的方法


Posted in Python onJune 01, 2018

1.前言

JavaWeb Struts2的拦截器我们都能很熟悉,在请求交给Action处理之前,先在拦截器中处理,处理完之后再交给Action。

在Django中如何实现相同的效果?

2.Django中间件

这个是我的项目的目录结构。

Django中间件实现拦截器的方法

首先,先在app目录(也就是我项目的web目录)中新建一个文件命名为middleware.py

Django中间件实现拦截器的方法

里面加入以下代码:

try:
from django.utils.deprecation import MiddlewareMixin # Django 1.10.x
except ImportError:
MiddlewareMixin = object # Django 1.4.x - Django 1.9.x
class SimpleMiddleware(MiddlewareMixin):
def process_request(self, request):
return None
def process_response(self, request, response):
return response

在process_request中处理请求,process_response处理响应。

在process_request方法中,返回值为HttpResponse类型的对象的时候不交给普通的控制器处理,直接返回给浏览器,返回值为None的时候,请求处理完之后交给普通的控制器处理。

在settings.py文件的中间件配置中我们刚刚的中间件。

Django中间件实现拦截器的方法

至此利用中间件做拦截器的工作配置完成。

Python 相关文章推荐
python操作日期和时间的方法
Mar 11 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
PyQt5每天必学之工具提示功能
Apr 19 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
Jun 13 Python
Python初学者常见错误详解
Jul 02 Python
Python实现手机号自动判断男女性别(实例解析)
Dec 22 Python
python 已知平行四边形三个点,求第四个点的案例
Apr 12 Python
python实现高效的遗传算法
Apr 07 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 11 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 #Python
详解Python如何生成词云的方法
Jun 01 #Python
Python实现的个人所得税计算器示例
Jun 01 #Python
Python模拟登录的多种方法(四种)
Jun 01 #Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 #Python
Python爬虫获取图片并下载保存至本地的实例
Jun 01 #Python
python操作mysql代码总结
Jun 01 #Python
You might like
两个开源的Php输出Excel文件类
2010/02/08 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
php数组删除元素示例
2014/03/21 PHP
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
2010/03/23 Javascript
检测jQuery.js是否已加载的判断代码
2011/05/20 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
Angular2下使用pdf插件的方法详解
2017/04/29 Javascript
详解Node.js中的Async和Await函数
2018/02/22 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
原生js实现淘宝放大镜效果
2020/10/28 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
web.py 十分钟创建简易博客实现代码
2016/04/22 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
Python实现基本线性数据结构
2016/08/22 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
pycharm打开命令行或Terminal的方法
2019/01/16 Python
将python图片转为二进制文本的实例
2019/01/24 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
2018/08/28 HTML / CSS
请问如下代码执行后a和b的值分别是什么
2016/05/05 面试题
教师党员公开承诺事项
2014/05/28 职场文书
学习退步检讨书
2014/09/28 职场文书
事业单位考察材料范文
2014/12/25 职场文书
幼儿园六一主持词
2015/06/30 职场文书
教你利用python实现企业微信发送消息
2021/05/23 Python
Flask response响应的具体使用
2021/07/15 Python
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers