django 的中间件 middleware
2017-04-18 00:00
211 查看
摘要: django可以对请求进行一些过滤 对响应进行包装
1 什么使用中间件
3 应用
request.user 是通过
一个middleware只需要继承 object 类
一个middleware可以实现一些方法并且不需要实现所有的方法
一个middleware可以实现 process_request(方法) 但是不可以实现 process_response(方法) 和 process_view 方法。 这些都很常见,Django提供了很多middlewares可以做到。
一个middleware可以实现 process_response 方法,但是不需要实现 process_request 方法
实践:
1 选一个中间件类
2 MIDDLEWARE_CLASSES 中添加这个中间件
注意:所以如果 Middleware的process_request方法中返回了HttpResponse对象,那么它之后的中间件将被略过, view中的处理方法也被略过。
参考:http://blog.csdn.net/orangleliu/article/details/48316919
1 什么使用中间件
Middlewares 是修改 Django request 或者 response 对象的钩子
2 什么时候使用 middleware
如果你想修改请求,例如被传送到view中的HttpRequest对象。 或者你想修改view返回的HttpResponse对象, 这些都可以通过中间件来实现。 可能你还想在view执行之前做一些操作,这种情况就可以用 middleware来实现。
3 应用
request.user 是通过
AuthenticationMiddleware来设置的
使用middleware时应该记住的东西
middlewares 的顺序非常重要一个middleware只需要继承 object 类
一个middleware可以实现一些方法并且不需要实现所有的方法
一个middleware可以实现 process_request(方法) 但是不可以实现 process_response(方法) 和 process_view 方法。 这些都很常见,Django提供了很多middlewares可以做到。
一个middleware可以实现 process_response 方法,但是不需要实现 process_request 方法
实践:
1 选一个中间件类
class BookMiddleware(object): def process_request(self, request): print "Middleware executed"
2 MIDDLEWARE_CLASSES 中添加这个中间件
MIDDLEWARE_CLASSES = ( 'books.middleware.BookMiddleware', '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', )
注意:所以如果 Middleware的process_request方法中返回了HttpResponse对象,那么它之后的中间件将被略过, view中的处理方法也被略过。
#!/bin/bash # 更改过期红包 # 每天执行一次 # 0 0 * * * /data/htdocs/iggo/bin/update_expire.sh cd /data/htdocs/iggo /home/csgo/.virtualenvs/iggo/bin/python ./manage.py deal_expire --settings=settings.production
参考:http://blog.csdn.net/orangleliu/article/details/48316919
相关文章推荐
- Django 中间件(middleware)
- 深入学习Django源码基础13 - Django中的中间件(middleware)
- Django教程笔记:六、中间件middleware
- Django框架全面讲解 -- 中间件(MiddleWare)
- Django 源码小剖: 初探中间件(middleware)
- 详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
- Django 中间件 Middleware
- 利用Django中间件middleware解决用户未登录问题(转)
- Django教程笔记之中间件middleware详解
- Django分析之Middleware中间件
- django中间件Middleware
- Django 中间件 Middleware
- django用jquery的ajax提交表单,中间件的CsrfViewMiddleware问题
- 深入理解Django的中间件middleware
- Django中间件学习笔记
- ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构
- .NET Core 中间件MiddleWare
- django.session-middleware
- Django源码笔记——中间件处理过程
- Python自动化之Django中间件