django-rest-framework权限验证

在项目根目录下新建utils的文件

  • 新建permissions.py
    from rest_framework.permissions import BasePermission

    class MyPermission(BasePermission):

        message = '必须用户id为1的人才能访问'

        def has_permission(self, request, view):
if request.user.id != 1:
return False
return True
  • 自定义的权限验证类必须继承BasePermission, 且实现has_permission的成员方法
  • 返回为False表示不通过验证
  • 定义类变量message可以实现自定义错误信息返回

内置的权限验证类

  • AllowAny: 无限制
  • IsAuthenticated: 登陆用户开放
  • IsAdminUser: 只有is_staff为True的用户才开放
  • IsAuthenticatedOrReadOnly: 登陆的用户无限制,未登录的用户只读

使用内置的权限

class PermissionRequired(BasePermission):

    def has_permission(self, request, view):
user = request.user
perms = view.perms if view.perms else []
if user.has_perms(perms):
return True
return False class Index(views.APIView):
permission_classes = [PermissionRequired]
perms = ['student.add_role'] def get(self, request):
return Response('66')

调用内部的权限校验,通过view对象拿到所需的参数,就可以完成对django内部的权限的调用

最新文章

  1. 如何修改SQL SERVER服务器的端口
  2. oracle重装系统后恢复
  3. 开启MySQL日志
  4. Bash中的任务(job)管理
  5. yum install 安装时报yum doesn't have enough cached data to continue.
  6. spring junit
  7. express新旧语法对比
  8. HTTP协议(待完善)
  9. SQLite 在Windows Server 2008 R2 部署问题FAQ汇总[轉]
  10. C语言总结之---关键字
  11. CentOS python升级到3.5时yum报错
  12. UVALive - 3644 X-Plosives (并查集)
  13. ZJOI2018游记
  14. Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错
  15. python第一阶段总结(2)
  16. JS-JS作用域问题
  17. YUM仓库配置
  18. django默认后台使用
  19. 4.easyloader.js文件的作用
  20. Python 入门基础9 --函数基础2 实参与形参

热门文章

  1. 机器学习——详解经典聚类算法Kmeans
  2. 【Python】2.12学习笔记 变量
  3. 微信小程序开发(二)认识开发工具
  4. Jmeter中使用MD5方法
  5. 机器学习 - 命名实体识别之Hidden Markov Modelling
  6. WebStorm添加Angular2服务启动的脚本命令
  7. Java流中的map算子和flatMap算子的区别
  8. [ICRA 2019]Multi-Task Template Matching for Object Detection, Segmentation and Pose Estimation Using Depth Images
  9. ubuntu 下python出现pkg: error processing package *python* 解决之道
  10. FtpServer穿透内网访问配置踩笔记