rest-framework之权限组件

权限介绍

只用超级用户才能访问指定的数据,普通用户不能访问,所以就要有权限组件对其限制

源码部分

权限类:

class MyPermission():
    def has_permission(self,request,view):
        if  request.user.user_type == 1:
            return True
        else:
            return False

视图类:

class Books(APIView):
    # authentication_classes = [类名,类名]
    #只有超级用户才能访问此接口
    permission_classes = [MyPermission,]
    def get(self,request):
        print(request.user.name)
        return Response(‘返回所有图书‘)

如果是普通用户登录返回的是个英文错误信息,要把他转换成中文

只要在了方法上面价格message

需要继承

from rest_framework.permissions import BasePermission

局部使用

permission_classes = [MyPermission,]

全局使用

因为是个列表,直接后面加上

REST_FRAMEWORK={
    "DEFAULT_AUTHENTICATION_CLASSES":["app01.MyAuths.MyAuth",],
    "DEFAULT_PERMISSION_CLASSES":["app01.MyAuths.MyPermision",]
}

局部禁用

permission_classes = []

原文地址:https://www.cnblogs.com/zhengyuli/p/11129721.html

时间: 2024-07-31 02:04:34

rest-framework之权限组件的相关文章

Rest Framework 之权限组件

restful权限控制 # 写一个权限类,继承BasePermission class MyPremission(BasePermission): # 重写has_premission方法 message = "中文错误信息" # 读源码可以知道 返回值显示中文,写message ="中文" def has_premission(self,request,view): # 下面写权限控制相关逻辑 # 因为权限校验在认证之后,所以能取到request.user if

Django REST Framework之权限组件

权限控制是如何实现的? 一般来说,先有认证才有权限,也就是用户登录后才能判断其权限,未登录用户给他一个默认权限. Django接收到一个请求,首先经过权限的检查,如果通过检查,拥有访问的权限,则予以放行,进入到视图处理.如果没有通过检查,不会进入视图层,直接返回前端相应信息. 使用权限控制 权限控制类: class MyPermission(BasePermission): message = "您没有权限" def has_permission(self, request, view

Django REST framework —— 权限组件源码分析

在上一篇文章中我们已经分析了认证组件源码,我们再来看看权限组件的源码,权限组件相对容易,因为只需要返回True 和False即可 代码 1 class ShoppingCarView(ViewSetMixin, APIView): 2 permission_classes = [MyPermission, ] 3 def list(self,request, *args, **kwargs): 4 """ 5 查看购物车信息 6 :param args: 7 :param k

DAY99 - Rest Framework(四)- 认证组件和权限组件

一.认证组件 1.使用 # 模型层 class User(models.Model): name = models.CharField(max_length=32) pwd = models.CharField(max_length=32) class UserToken(models.Model): user = models.OneToOneField(to='User') token = models.CharField(max_length=64) #myAuth.py from app

Django Rest framework 之 权限

一.权限实例 在阅读本文之前请先参考django rest framework 之 认证中关于django rest framework的相关内容及实例 1.目录结构 为了更好的管理各个功能组件,在django rest framework 之 认证中我们说到可以将认证类单独的拿出来,放到其他目录下,然后导入到views.py 文件中,在权限环节我们亦可以这么做,目录结构就变成这样 在api这个app下创建一个utils包专门用来存放相关的组件. 2.为模型类添加认证字段 我们在models.p

ASP.NET通用权限组件实现一

沙发(SF)通用权限验证组件 开篇 上一篇提到了通用权限的设计思路,根据设计思路一步一步的来实现一个相对通用的权限验证组件.在VS2010下用C#语言基于.net framework2.0框架实现具体功能. 配置文件 配置文件为XML格式(SFPermission.xml)公有四个节点分类: 一.AppSet节点:此节点配置一些基础信息. 1 <AppSet> 2 <!--数据库节点名称(必须在Web.config的connectionStrings节点下面)--> 3 <a

ASP.NET通用权限组件思路设计

开篇 做任何系统都离不开和绕不过权限的控制,尤其是B/S系统工作原理的特殊性使得权限控制起来更为繁琐,所以就在想是否可以利用IIS的工作原理,在IIS处理客户端请求的某个入口或出口通过判断URL来达到控制权限的目的,这样就可以减少通常要在每个页面或按钮都要添加的权限验证代码. 通常的权限验证模式 一般的权限验证会控制到菜单(页面)就可以满足,复杂一点的会要求控制到按钮(功能点),这个都需要做一下几点工作: 1.按权限生成菜单,这是所有系统都要做的: 2.在每个页面的开始处添加登录和权限的验证,调

权限组件之录入数据

权限组件之录入数据 1.新建一个django项目 rbac 2.增加一个app应用 3.什么是rbac??? 生成表 4.3张表一写,会生成5张表 5.数据库迁移 6.查看表,没有我们自己写的表???都是自带的表 7.settings配置 8.入口文件 9.重新数据化迁移,查看表 admin  添加数据 10.添加数据   admin 11.创建管理员,用户名.(邮箱可以不用填写).密码 12.登入admin 13.默认没有我们自己写的app里的表,需要注册才会显示表 14.第三张表不用加. 1

权限组件之录入获取登入用户的所有权限

权限组件之录入获取登入用户的所有权限 1.urls.py 2.views.py get请求 3.login.html 页面 post请求 4.用户名或密码错误重新登入 验证用户名密码 登入成功之后做什么呢??? session 5.登入成功可以写session值,下次查看别的页面就知道是谁了. pk指的的主键 6.查看 django_session 表 随机字符串={user_id=3,}   通过取当前用户的id--->然后就可以取当前用户的所有信息. 获取当前用户的所有权限 7.获取当前用户

RestFramework之权限组件

一,RestFramework之权限组件源码解析 restframework的权限组件与认证组件源码类似,都需要我们自己写一个类,然后放在 permission_classes中,或者全局settings中配置: 我们直接看在dispatch()中的权限组件部分干了什么. def initial(self, request, *args, **kwargs): """ Runs anything that needs to occur prior to calling the