Django restframework 权限管理

昨天我们写了如何通过认证管理,来实现登录后才可以访问的某些视图,并且可以有多种认证方式。今天主要讲一下权限的管理,实现不同的权限可以访问不同的视图。
首先,跟昨天一样,建表,并模拟加入三个不同的用户
Django restframework 权限管理_第1张图片
Django restframework 权限管理_第2张图片
2. 编写视图函数(和昨天的是一样的)
Django restframework 权限管理_第3张图片
3. 配置路由
Django restframework 权限管理_第4张图片
4. 进行权限验证,user_type 就是我们刚开始建立数据库时,建立的字段。通过查看BasePermission 方法,可以看到定义的这两个函数的作用。
Django restframework 权限管理_第5张图片
5, 进行测试
在没有加入权限验证的时候,可以直接访问到OrderView 视图返回的内容
Django restframework 权限管理_第6张图片
加入PermissionView 验证
Django restframework 权限管理_第7张图片
所有的验证顺序已经在图片里面标识清楚了,需要注意的是,在刚开始建完表之后,我手动添加了三个用户:jiang,yu,lang 分别设置三个不同的等级用来测试。这一步的token, 是在上一步用户成功登录之后,根据用户信息进行一对一存储的,存储到数据库之后,可以返回给前端,在前端访问其他需要验证页面时,可以携带进行验证。在这一步时,根据token可以找到相应的用户与它的权限,编写测试逻辑,判断是否有权限访问。
至此,简单的权限验证已经写完了。或许认为有点简单,但是,假如在刚开始创建表时,设立多个用户类型,在view.py 文件里,也可以加入多个权限验证类,每个类都有不同的验证方法,而继承时,可以只继承一部分类,从而进行不同的验证。
Django restframework 权限管理_第8张图片

写在最后,权限验证也可以写进settings 里面,表示所有的类都要进行验证,假如有点不需要验证,只要将上面的 permission_classes = [] 即可。
而且在工程中,我们是将验证类与视图类分文件写的,这样代码更加简洁,目前这样写只是为了方便学习与比较,在工程中还是需要注意。
还有若是对某些函数的命名或者返回值不理解,可以查看部分源码,这样也有利用学习。

你可能感兴趣的:(Django)