django-rest-framework权限验证
2024-08-30 05:20:39
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内部的权限的调用
最新文章
- 如何修改SQL SERVER服务器的端口
- oracle重装系统后恢复
- 开启MySQL日志
- Bash中的任务(job)管理
- yum install 安装时报yum doesn't have enough cached data to continue.
- spring junit
- express新旧语法对比
- HTTP协议(待完善)
- SQLite 在Windows Server 2008 R2 部署问题FAQ汇总[轉]
- C语言总结之---关键字
- CentOS python升级到3.5时yum报错
- UVALive - 3644 X-Plosives (并查集)
- ZJOI2018游记
- Jumpserver(跳板机、堡垒机)启动jms Django连接mysql数据库报错
- python第一阶段总结(2)
- JS-JS作用域问题
- YUM仓库配置
- django默认后台使用
- 4.easyloader.js文件的作用
- Python 入门基础9 --函数基础2 实参与形参
热门文章
- 机器学习——详解经典聚类算法Kmeans
- 【Python】2.12学习笔记 变量
- 微信小程序开发(二)认识开发工具
- Jmeter中使用MD5方法
- 机器学习 - 命名实体识别之Hidden Markov Modelling
- WebStorm添加Angular2服务启动的脚本命令
- Java流中的map算子和flatMap算子的区别
- [ICRA 2019]Multi-Task Template Matching for Object Detection, Segmentation and Pose Estimation Using Depth Images
- ubuntu 下python出现pkg: error processing package *python* 解决之道
- FtpServer穿透内网访问配置踩笔记