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判断值是否在list或set中的性能对比分析
Apr 16 Python
Numpy之文件存取的示例代码
Aug 03 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
Dec 02 Python
在python shell中运行python文件的实现
Dec 21 Python
Python sorted对list和dict排序
Jun 09 Python
完美解决keras 读取多个hdf5文件进行训练的问题
Jul 01 Python
Python同时迭代多个序列的方法
Jul 28 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
几款好用的python工具库(小结)
Oct 20 Python
Python descriptor(描述符)的实现
Nov 15 Python
Python 带星号(* 或 **)的函数参数详解
Feb 23 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 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
BBS(php & mysql)完整版(二)
2006/10/09 PHP
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
php中的curl使用入门教程和常见用法实例
2014/04/10 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
jQueryUI的Dialog的简单封装
2010/06/07 Javascript
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
浅谈JavaScript中小数和大整数的精度丢失
2016/05/31 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
工作中比较实用的JavaScript验证和数据处理的干货(经典)
2016/08/03 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
JavaScript表单验证实现代码
2017/05/22 Javascript
webpack教程之webpack.config.js配置文件
2017/07/05 Javascript
20行JS代码实现粘贴板复制功能
2018/02/06 Javascript
vue实现分页栏效果
2019/06/28 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[02:53]DOTA2英雄基础教程 山岭巨人小小
2013/12/09 DOTA
python通过apply使用元祖和列表调用函数实例
2015/05/26 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
Python基于Flask框架配置依赖包信息的项目迁移部署
2018/03/02 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
基于python代码批量处理图片resize
2020/06/04 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
水产养殖学应届生求职信
2013/09/29 职场文书
汽车技术服务与营销专业推荐信
2013/11/29 职场文书
研讨会通知
2015/04/27 职场文书
毕业赠语大全
2015/06/23 职场文书
2016高考冲刺决心书
2015/09/23 职场文书