Django学习系列之中间件
2017-03-05 22:35
183 查看
中间件的定义
中间件是一个、一个的管道,如果相对任何所有的通过Django的请求进行管理都需要自定义中间件中间件可以对进来的请求和出去的请求进行控制
中间件是一类
django请求生命周期
自定义中间件
process_request(self,request): 请求到达之后之后先执行这个中间件process_view(self, request, callback, callback_args, callback_kwargs):
process_exception(self, request, exception) 这个方法只有在出现错误的时候才会触发
process_response(self, request, response):请求处理完成出去之后执行这个自己解决
process_template_response(self,request,response) 这个方法只有在返回对象中有render方法的时候才执行,如render_to_response('/index/')
实例
编写中间件from django.utils import deprecation class M1(deprecation.MiddlewareMixin): def process_request(self,request): print('M1.process_request') def process_response(self,request,response): print('M1.process_response') return response
注册中间件
MIDDLEWARE = [ 'middle.middle1.M1', #中间件地址,middle目录下的middle.py文件下的MI 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', #'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] #由于中间件是对全局生效的,所以需要注意
定义视图函数
def login(request): print('123') return HttpResponse("ok")
测试
随便找一个url,访问127.0.0.1:8000/login
M1.process_request #请求到来 先走request中间件 123 #视图函数本身输出123 M1.process_response #最后走response
相关文章推荐
- 从头学习开发django系列-setting文件配置,以SAE为例
- 从头学习开发Django系列-自定义标签和过滤器
- 全栈开发系列学习2——django项目搭建
- Django学习系列之模板系统
- Django学习系列之路由系统
- 【django 学习笔记】16-中间件
- Django学习系列之CSRF
- Django学习系列之ModelForm
- Django学习系列之Form验证
- Django学习系列之结合ajax
- Django系列教程:[X]学习中的常见问题(不定期更新)
- django学习系列之数据库篇
- Django学习系列(一)--安装Django
- Django学习系列之用户注册
- 消息中间件学习笔记系列--1
- 从头学习开发django系列-图书教程推荐
- Python&Django学习系列之-激活管理界面
- django学习系列之模板系统篇(二)
- Django学习系列—第二天
- Django学习系列之Form验证