零散知识点(三)

使用中间件来判断是否登录

一、关于中间件

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()  即可使用。

posted on 2020-10-26 10:52  大能猫不是猫  阅读(83)  评论(0)    收藏  举报