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()方法,将装饰器写在他的上面。具体咋写看图里面
第二个是在类上面直接写,具体写法看下图