一、中间件

所谓的中间件,就是存在socket和视图函数中间的一种相当于过滤的机构。

中间件共分为:

(1)process_request(self,request)

(2)process_view(self, request, callback, callback_args, callback_kwargs)

(3)process_template_response(self,request,response)

(4)process_exception(self, request, exception)

(5)process_response(self, request, response)

1. 自定义中间件

from django.utils.deprecation import MiddlewareMixin
class M1(MiddlewareMixin):
def process_request(self,request):
print('M1.process_request') def process_view(self,request,callback,callback_args,callback_kwargs):
print('M1.process_view')
response=callback(request,*callback_args,**callback_kwargs)
return response def process_response(self,request,response):
print('M1.process_response')
return response

2. 注册中间件

# 找到settings.py中MIDDLEWARE

如:

MIDDLEWARE = [
'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',
'md.M1',
'md.M2',
]

3. 中间件执行流程

  用户有访问请求,会从中间件最上方的request(接收)一直往下执行,最后到视图函数然后再由中间件从下往上的response(返回)给用户

4. 中间件执行过程中有return值流程:用户有访问请求,会从中间件最上方的request(接收)一直往下执行,直到那个中间件有return值后在当前的中间值返回给用户,(在1.7左右版本)会直接跳到最后的中间件,然后返回给用户。

最新文章

  1. Sql Server之使用T_SQL创建,修改,查看数据库信息
  2. Sqrtx
  3. hiho #1310 : 岛屿 (dfs,hash)
  4. Hadoop三种安装模式:单机模式,伪分布式,真正分布式
  5. nginx初识
  6. Sqlserver到处数据到Excel
  7. 博弈论(SG函数):HNOI 2007 分裂游戏
  8. 学习了php之后再来看php怎样学java
  9. 3、使用Gradle创建Libgdx项目
  10. 爬虫之scrapy--基本操作
  11. ABAP的匹配
  12. [Java]Java分层概念(转)
  13. python3模块: requests
  14. AngularJS路由系列(3)-- UI-Router初体验
  15. 使用VMware将Linux装在物理硬盘上,开机即可进入Linux (转)
  16. nodejs发送http请求
  17. (24)如何使用HttpClient
  18. 关于使用PL/SQL连接本地oracle时报错:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务解决
  19. html热点区域
  20. 学习动态性能表(6)--v$session_wait&v$session_event

热门文章

  1. Java word 内容读取
  2. 部署zabbix 4.0 + grafana
  3. Redis 数据安全与性能保障
  4. 创建一个简单的 Springboot web项目
  5. option跳转页面并选中当前值
  6. Quartz监听器
  7. sh_07_火车站安检
  8. JMS学习六(ActiveMQ消息传送模型)
  9. sqli-labs(28)---原创原创自此一家
  10. springBoot 配置url 访问图片