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 相关文章推荐
Windows系统下安装Python的SSH模块教程
Feb 05 Python
python3简单实现微信爬虫
Apr 09 Python
Python基于最小二乘法实现曲线拟合示例
Jun 14 Python
根据DataFrame某一列的值来选择具体的某一行方法
Jul 03 Python
利用Python实现手机短信监控通知的方法
Jul 22 Python
JupyterNotebook设置Python环境的方法步骤
Dec 03 Python
python实现从尾到头打印单链表操作示例
Feb 22 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
python给list排序的简单方法
Dec 10 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python time库的时间时钟处理
May 02 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
一个好用的分页函数
2006/11/16 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
php实现购物车功能(上)
2020/07/23 PHP
jquery $("#variable") 循环改变variable的值示例
2014/02/23 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
Python中pip安装非PyPI官网第三方库的方法
2015/06/02 Python
python将每个单词按空格分开并保存到文件中
2018/03/19 Python
python统计多维数组的行数和列数实例
2018/06/23 Python
python学生信息管理系统(初级版)
2018/10/17 Python
Python按钮的响应事件详解
2019/03/04 Python
python实现关闭第三方窗口的方法
2019/06/28 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Python中的面向接口编程示例详解
2021/01/17 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
网络安全类面试题
2015/08/01 面试题
俄语专业职业生涯规划
2014/02/26 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
预备党员的自我评价
2014/03/12 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
乡镇务虚会发言材料
2014/10/20 职场文书
美元符号 $
2022/02/17 杂记