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之Python文档
Oct 10 Python
Python检测QQ在线状态的方法
May 09 Python
在Python的列表中利用remove()方法删除元素的教程
May 21 Python
Python访问纯真IP数据库脚本分享
Jun 29 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
用Python实现随机森林算法的示例
Aug 24 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
python基础教程之while循环
Aug 14 Python
Python sorted对list和dict排序
Jun 09 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 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
如何给phpadmin一个保护
2006/10/09 PHP
与数据库连接
2006/10/09 PHP
PHP使用数组实现队列
2012/02/05 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
Yii实现多数据库主从读写分离的方法
2014/12/29 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
Linux系统中为php添加pcntl扩展
2016/08/28 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
javascript检查浏览器是否支持flash的实现代码
2014/08/14 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
利用JS生成博文目录及CSS定制博客
2016/02/10 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
javascript时间差插件分享
2016/07/18 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
JavaScript模块化之使用requireJS按需加载
2017/04/12 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
通过实例浅析Python对比C语言的编程思想差异
2015/08/30 Python
Python中表示字符串的三种方法
2017/09/06 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
计算机二级python学习教程(3) python语言基本数据类型
2019/05/16 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
2019/08/26 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
俄罗斯最大的消费电子连锁零售商:Mvideo
2017/06/25 全球购物
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
领导班子三严三实心得体会
2014/10/13 职场文书
志愿者事迹材料
2014/12/26 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
详解CSS玩转图片Base64编码
2021/05/25 HTML / CSS
详解Redis瘦身指南
2021/05/26 Redis