Django面试题(一)django的中间件最多可以写几个方法?使用中间件做什么?

2021-03-02 14:39:41 浏览数 (1)

django的中间件最多可以写几个方法?

最多5个

使用中间件做什么?

csrf中间件的使用方法

为什么使用csrf中间件

在django项目里面,我们为了保障项目的安全,一般是有csrf认证,就是前端要带csrf——token到后端,这样在后端验证通过之后,就可以走url的流程了。

如何使用?

django的setting里面有中间件的设置,在设置了csrf的中间件之后,所有 的我们写的view的视图在之前都需要验证csrf。 我们写的view视图,有两种方法,一种是直接写方法,一种是写类,类里面再写方法。

首先先说如果你的view视图里面是直接写方法,如何使用csrf。

view视图里面是直接写方法,如何使用csrf?

csrf的设置方式有两种,一个是中间件,一个是装饰器

中间件就是全局设置的,在setting里面设置csrf中间件,如下

代码语言:javascript复制
'django.middleware.csrf.CsrfViewMiddleware',

装饰器的方式是,在方法上面写装饰器,有两种装饰器,一种是写了这个装饰器,走这个视图就不需要csrf发验证了,一种是写了之后就需要认证。具体代码如下

代码语言:javascript复制
from django.views.decorators.csrf import csrf_protect,csrf_exempt

@csrf_protect : 写了这个需要认证 @csrf_exempt : 不需要认证了

view视图里面写类,如何使用csrf?

当view视图类里面的方法有很多,比如有abcd四个方法,现在在setting里面设置了csrf中间件,全部的方法都需要认证,但是b方法现在不想要认证咋办。可以这样做,步骤如下:

在自己写的类里面写一个dispact()方法,将装饰器写在他的上面。具体咋写看图里面

第二个是在类上面直接写,具体写法看下图

0 人点赞