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 20 Python
Python线程指南详细介绍
Jan 05 Python
Python md5与sha1加密算法用法分析
Jul 14 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
python http基本验证方法
Dec 26 Python
Python3.0中普通方法、类方法和静态方法的比较
May 03 Python
Django模板Templates使用方法详解
Jul 19 Python
Python csv模块使用方法代码实例
Aug 29 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
python 输出列表元素实例(以空格/逗号为分隔符)
Dec 25 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
Feb 25 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
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
PHP时间格式控制符对照表分享
2013/07/23 PHP
php实现数组筛选奇数和偶数示例
2014/04/11 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP也能干大事之PHP中的编码解码详解
2015/04/20 PHP
PHP实现发送邮件的方法(基于简单邮件发送类)
2015/12/17 PHP
PHP getName()函数讲解
2019/02/03 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
js 实现菜单上下显示附效果图
2013/11/21 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
vue中v-for循环给标签属性赋值的方法
2018/10/18 Javascript
create-react-app使用antd按需加载的样式无效问题的解决
2019/02/26 Javascript
vuex入门最详细整理
2020/03/04 Javascript
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
Python数据分析matplotlib设置多个子图的间距方法
2018/08/03 Python
Python对切片命名的实现方法
2018/10/16 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
详解Python可视化神器Yellowbrick使用
2019/11/11 Python
Python数据可视化:顶级绘图库plotly详解
2019/12/07 Python
如何使用python3获取当前路径及os.path.dirname的使用
2019/12/13 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
ONLY德国官方在线商店:购买时尚女装
2017/09/21 全球购物
《理想》教学反思
2014/02/17 职场文书
设备收款委托书范本
2014/10/02 职场文书
工地食品安全责任书
2015/05/09 职场文书
高中地理教学反思
2016/02/19 职场文书