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数组的处理代码
Jan 04 Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
Python中在脚本中引用其他文件函数的实现方法
Jun 23 Python
python通过pip更新所有已安装的包实现方法
May 19 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
python实现列表中由数值查到索引的方法
Jun 27 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
利用Python小工具实现3秒钟将视频转换为音频
Oct 29 Python
opencv 实现特定颜色线条提取与定位操作
Jun 02 Python
Python项目跨域问题解决方案
Jun 22 Python
python基于机器学习预测股票交易信号
May 25 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产生动态的影像图
2006/10/09 PHP
PHP 防恶意刷新实现代码
2010/05/16 PHP
PHP源码之explode使用说明
2011/08/05 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
2013/06/18 PHP
smarty内置函数foreach用法实例
2015/01/22 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
Highslide.js是一款基于js实现的网页中图片展示插件
2020/03/30 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
Javascript string 扩展库代码
2010/04/09 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
设置jquery UI 控件的大小方法
2016/12/12 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
详细介绍解决vue和jsp结合的方法
2020/02/06 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
2020/08/11 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
python实现汉诺塔方法汇总
2016/07/25 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
详解python持久化文件读写
2019/04/06 Python
Python配置pip国内镜像源的实现
2020/08/20 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
校三好学生主要事迹
2014/01/11 职场文书
公司年会搞笑主持词
2014/03/24 职场文书
机关中层领导干部群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
警察群众路线整改措施
2014/09/26 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android