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 29 Python
详解Django中的ifequal和ifnotequal标签使用
Jul 16 Python
浅谈插入排序算法在Python程序中的实现及简单改进
May 04 Python
python3中set(集合)的语法总结分享
Mar 24 Python
Python多线程扫描端口代码示例
Feb 09 Python
15行Python代码带你轻松理解令牌桶算法
Mar 21 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
在python里面运用多继承方法详解
Jul 01 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
解决python中显示图片的plt.imshow plt.show()内存泄漏问题
Apr 24 Python
python获取系统内存占用信息的实例方法
Jul 17 Python
Python如何读取、写入JSON数据
Jul 28 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读取数据库信息的几种方法
2008/05/24 PHP
php合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
基于PHP CURL用法的深入分析
2013/06/09 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
php实现paypal 授权登录
2015/05/28 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
2018/05/31 PHP
ExtJs使用IFrame的实现代码
2010/03/24 Javascript
window.dialogArguments 使用说明
2011/04/11 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
jquery在项目中做复选框时遇到的一些问题笔记
2013/11/17 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
jQuery的实例及必知重要的jQuery选择器详解
2016/05/20 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
Javascript中this关键字指向问题的测试与详解
2017/08/11 Javascript
微信小程序实现折叠面板
2018/01/31 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
vue组件间通信六种方式(总结篇)
2019/05/15 Javascript
Python 除法小技巧
2008/09/06 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Linux下python与C++使用dlib实现人脸检测
2018/06/29 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
SISLEY希思黎官方旗舰店:享誉全球的奢华植物美容品牌
2018/04/25 全球购物
面试后感谢信怎么写
2014/02/01 职场文书
物流创业计划书
2014/02/01 职场文书
员工安全生产承诺书
2014/05/22 职场文书
故意杀人罪辩护词
2015/05/21 职场文书