零散知识点(三)
使用中间件来判断是否登录
一、关于中间件
1、一个中间件就是一个类,这个类必须要继承MiddlewareMixin类。
2、中间件要在配置文件夹中注册,执行的顺序就是按注册的顺序。
3、执行流程,假设有中间件A和B,注册顺序是A,B。

完整的顺序是: A (process_request) ------B(process_request)-------得到到视图函数-----A(process_view)------B(process_view)-----B(process_response)----A(process_response)
有返回值的: A (process_request) 如果有返回值,则直接调用A(process_response);如果A(process_view)有返回值则跳到B(process_response)再依次执行下去。
其中 process_view 函数中的参数,会有视图函数和视图函数的参数。即:process_view(request,视图函数,视图函数参数)
如果在process_xxxx中,返回空,如:return 则直接调到下一步。
==============================================
在 process_view 中可以得到视图函数和它的参数。
首先判断请求地址是不是进入项目的,如果进入项目的则在process_view 得到的视图函数的参数会有project_id,通过project_id可以查询得到这个项目。查询项目分两种情况,如果是请求者自己创建的项目,则在项目表中查询。如果查询不到,表示是请求者参与的项目,在项目参与表中查询项目。
二、离线脚本
整个django web运行时,才能执行代码文件,调用配置文件。有时只执行一个或几个文件,不需要运行整个django,就可以使用离线脚本。
离线脚本使用方法:
1、找到settings.py文件的目录,添加到sys.path中。
2、os.environ.setdefault() 读取配置文件(读取文件先从当前目录找,找不到会去环境变量中的目录找,所以第一步是把配置文件目录添加到环境变量中)
3、运行起来 django.setup() 即可使用。
浙公网安备 33010602011771号