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中使用第三方模块的教程
Apr 27 Python
Python内置模块ConfigParser实现配置读写功能的方法
Feb 12 Python
python中dir()与__dict__属性的区别浅析
Dec 10 Python
Python第三方库h5py_读取mat文件并显示值的方法
Feb 08 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
浅谈python编译pyc工程--导包问题解决
Mar 20 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
Python实现ATM系统
Feb 17 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
Mar 09 Python
IntelliJ 中配置 Anaconda的过程图解
Jun 01 Python
利用scikitlearn画ROC曲线实例
Jul 02 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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函数学习之PHP函数点评
2012/07/05 PHP
file_get_contents("php://input", "r")实例介绍
2013/07/01 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
PHP简单实现数字分页功能示例
2016/08/24 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
php中各种定义变量的方法小结
2017/10/18 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
js导航菜单(自写)简单大方
2013/03/28 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
JS获取农历日期具体实例
2013/11/14 Javascript
js拼接html注意问题示例探讨
2014/07/14 Javascript
JQuery中serialize() 序列化
2015/03/13 Javascript
JS控制按钮10秒钟后可用的方法
2015/12/22 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
2016/01/25 Javascript
很不错的两款Bootstrap Icon图标选择组件
2016/01/28 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue里如何主动销毁keep-alive缓存的组件
2019/03/21 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
vue-router之实现导航切换过渡动画效果
2019/10/31 Javascript
python实现简单温度转换的方法
2015/03/13 Python
整理Python最基本的操作字典的方法
2015/04/24 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
python实现密码验证合格程序的思路详解
2020/06/01 Python
华为慧通面试题
2012/09/11 面试题
韩国商务邀请函
2014/01/14 职场文书
《我要的是葫芦》教学反思
2014/02/23 职场文书
《长相思》听课反思
2014/04/10 职场文书
Win11查看设备管理器
2022/04/19 数码科技