中间件的应用
流程
客户端发起请求 –> 进到wsgi(模型) –> 中间件(request_process) –> 路由(urls.py) –> 中间件(view_process) –> view(视图操作 -> orm操作 -> mysql ) –> 中间件(process_response before_template) –> wsgi(模型)
在Python项目中一直都在有使用中间件,在django项目中的setting.py文件中看到MIDDLEWARE配置项
1
|
#加载自定义中间件 文件夹名.文件名.类名
|
导入
1
|
from django.utils.deprecation import MiddlewareMixin
|
中间件的四种方法
1
|
# 自定义中间件
|
1.中间件的process_request方法是在执行视图函数之前执行的
2.当配置中间件时,会按照MIDDLEWARE的注册顺序,也就是列表的索引值,从前到后依次执行的。
3.不同中间件之间传递的request都是同一个对象。
中间件的应用场景
1.做IP限制 –> 放在中间件类的列表中,阻止某些ip访问;
2.URL访问过滤 –> 如果用户访问的是logo视图(放过)如果访问其他视图,需要检测是否已经有session或localstrage,已经有了放行,如果没有返回login,这样就省的在多个视图函数上写装饰器了!