django中间件做多写5个函数
- process_request
- process_view
- process_response
- process_exception
- process_render_template
view视图函数 即 处理 请求
在处理视图函数之前增加额外功能 , 类似视图函数的装饰器 .
目前使用过的中间件 :
- 权限
- 登录验证
- CSRF Token :
- 如何实现 : 检验 是否带着 Tokne的随机字符串来请求 ;
- 执行时间 : 在 process_request 结束时才做到路由匹配 , 在process_view 才检查视图是否被装饰 , 类似装饰器.
FBV 和 CBV的 写法
FBV 中间件使用情况
注意 CBV和上面处理方法不同
错误的 :
正确的做法 :
方法 一 : 重写dispatch方法
, 在上 加method_decorator装饰器
并传入 csrf_exempt
; 单独给 get/post等方法加无效 !
方法 二 :
不用重写 dispatch方法 , 在类 上加 method_decorator装饰器 并传入 csrf_exempt , 并指明name = "dispatch"