Django中间件实现拦截器的方法
时间:2019-04-15
本文章向大家介绍Django中间件实现拦截器的方法,主要包括Django中间件实现拦截器的方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.前言
JavaWeb Struts2的拦截器我们都能很熟悉,在请求交给Action处理之前,先在拦截器中处理,处理完之后再交给Action。
在Django中如何实现相同的效果?
2.Django中间件
这个是我的项目的目录结构。
首先,先在app目录(也就是我项目的web目录)中新建一个文件命名为middleware.py
里面加入以下代码:
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文件的中间件配置中我们刚刚的中间件。
至此利用中间件做拦截器的工作配置完成。
- java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.isAsyncStarted()Z 的解决
- JS魔法堂:定义页面的Dispose方法——[before]unload事件启示录
- HashSet/HashMap详解
- Ajax大显身手
- bash编程之xargs实用技巧
- 表单验证和正则表达式
- ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程
- 兰花协议—让世界自由的互联网
- Git(二)Git几个区的关系与Git和GitHub的关联
- maven/gradle 打包后自动上传到nexus仓库
- bash/shell编程学习(1)
- Git(一)之基本操作详解
- JavaScript中的函数基础
- JS魔法堂:判断节点位置关系
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 面试题系列第6篇:JVM字符串常量池及String的intern方法详解?
- 机器学习(一)——K-近邻(KNN)算法
- 机器学习(二)——K-均值聚类(K-means)算法
- windows下matplotlib的安装
- Python中常见的数据类型总结
- stm32中阻塞模式和非阻塞模式 in blocking mode 与 in non-blocking mode区别
- 机器学习(四)—决策树
- 机器学习(五)—朴素贝叶斯
- C语言面试题——位域及大小端模式的理解
- stm32添加串口调试
- STM32单片机极简方法 使用宏定义 代替复杂的重定向printf()函数,实现串口打印。(HAL库例程)
- 机器学习(六)— logistic回归
- 如果简化stm32中printf函数的使用——首先重定向
- TF-IDF算法(2)—python实现
- C语言定义数组时使用枚举作为数组的下标