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实现上传样本到virustotal并查询扫描信息的方法
Oct 05 Python
Python创建模块及模块导入的方法
May 27 Python
pandas 将索引值相加的方法
Nov 15 Python
Python+selenium点击网页上指定坐标的实例
Jul 05 Python
windows安装TensorFlow和Keras遇到的问题及其解决方法
Jul 10 Python
Python中IP地址处理IPy模块的方法
Aug 16 Python
Python处理session的方法整理
Aug 29 Python
利用python实现逐步回归
Feb 24 Python
Python实现疫情地图可视化
Feb 05 Python
Python爬虫分析微博热搜关键词的实现代码
Feb 22 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 Python
Python安装使用Scrapy框架
Apr 12 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
twig模板常用语句实例小结
2016/02/04 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
jquery如何扑捉回车键触发的事件
2014/04/24 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
各式各样的导航条效果css3结合jquery代码实现
2016/09/17 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
JavaScript函数、闭包、原型、面向对象学习笔记
2018/09/06 Javascript
小程序封装路由文件和路由方法(5种全解析)
2019/05/26 Javascript
使用Vue CLI创建typescript项目的方法
2019/08/09 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python 动态加载的实现方法
2017/12/22 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
Python中的TCP socket写法示例
2018/05/11 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python两种注释用法的示例
2020/10/09 Python
html5页面结构_动力节点Java学院整理
2017/07/10 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
上班睡觉检讨书
2014/01/09 职场文书
《桃花心木》教学反思
2014/02/17 职场文书
网络技术专业推荐信
2014/02/20 职场文书
项目投资建议书
2014/05/16 职场文书
领导干部对照检查材料
2014/08/24 职场文书
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python