简单实例:

class MyPermission(object):
'''
   权限控制类
   '''
def has_permission(self,request,view):
if request.user.user_type !=3:
return False
return True class MyPermission1(object):
'''
   权限控制类
   '''
message = "必须是SVPI才能访问!"
def has_permission(self, request, view):
if request.user.user_type == 3:
return False
return True ORDER_DICT = {
1:{
'name': 'x',
'age': 18,
'gender':'y',
'content': '...'
},
2:{
'name': 'z',
'age': 18,
'gender': 'h',
'content': '...'
}
}
class OrderView(APIView):
# 权限控制 按需添加
permission_classes = [MyPermission,]
def get(self,request,*args,**kwargs):
ret = {'code':1000,'msg':None,'data':None}
try:
ret['data'] = ORDER_DICT
except Exception as e:
pass
return JsonResponse(ret) class UserInfoView(APIView):
"""
订单相关业务(普通用户,VIP)
"""
# 权限控制 按需添加
permission_classes = [MyPermission1, ]
def get(self,request,*args,**kwargs):
return HttpResponse('用户信息')

  

如果没有配置:

permission_classes = [MyPermission,]

# 如果没有设置以上内容  默认源码会去 settings里面找
permission_classes = api_settings.DEFAULT_PERMISSION_CLASSES #全局设置
REST_FRAMEWORK = {
  "DEFAULT_PERMISSION_CLASSES": "api.utils.permission.Mypermission",
}

  

源码流程:

1--------
dispatch
2--------
initail
3--------
has_permission

  

改进版:

继承内置权限类:

from rest_framework.permissions import BasePermission
class MyPermission(BasePermission):
'''
   权限控制类
   '''
def has_permission(self,request,view):
if request.user.user_type !=3:
return False
return True

  

1.必须继承 BasePermission类

2.必须实现has_permission方法

Django rest-framework框架-用户权限实例的更多相关文章

  1. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  2. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  3. Django Rest Framework(认证、权限、限制访问频率)

    阅读原文Django Rest Framework(认证.权限.限制访问频率) django_rest_framework doc django_redis cache doc

  4. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  5. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  6. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  7. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  8. 04 Django REST Framework 认证、权限和限制

    目前,我们的API对谁可以编辑或删除代码段没有任何限制.我们希望有更高级的行为,以确保: 代码片段始终与创建者相关联. 只有通过身份验证的用户可以创建片段. 只有代码片段的创建者可以更新或删除它. 未 ...

  9. django 基于proxy实现用户权限管理

    项目中经常会遇到用户权限管理的问题,django adminsite已经提供非常实用的用户权限管理机制.不过有些时候,我们希望根据相关用户属性来过滤adminsite中显示的内容.下文将结束如何实现: ...

随机推荐

  1. HearthBuddy 召唤随从的问题

    代码如下,在SilverFish\SilverFish\ai\Playfield.cs文件中 public void callKid(CardDB.Card c, int zonepos, bool ...

  2. mysql端口3306无法访问

    mysql主备复制,show slave status显示IO一直connecting 一.查看了防火墙,已经处于关闭状态 二.查看使用的复制用户的权限,也已经开放 三.telnet访问另外一台机器端 ...

  3. Flutter移动电商实战 --(28)列表页_商品列表后台接口调试

    主要调试商品列表页的接口 这个接口是最难的因为有大类.小类还有上拉加载 先配置接口 config/service_url.dart //const serviceUrl='http://test.ba ...

  4. Flutter移动电商实战 --(19)首页_火爆专区商品接口制作

    Dart中可选参数的设置 上节课在作通用方法的时候,我们的参数使用了一个必选参数,其实我们可以使用一个可选参数.Dart中的可选参数,直接使用“{}”(大括号)就可以了.可选参数在调用的时候必须使用p ...

  5. windows工程总结

    1.win32控制台console程序 运行在MS-DOS环境中的程序.控制台应用程序通常没有可视化的界面,只是通过字符串来显示或者监控程序.控制台程序常常被应用在测试.监控等用途,用户往往只关心数据 ...

  6. python 调用父类方法, 重写父类构造方法, 不显式调用,会报错

    子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类 ...

  7. 使用ffmpeg裁剪和合并视频

    剪切视频 使用 -ss 和 -t 选项,从第0秒开始,向后截取31秒视频,并保存 ffmpeg -ss :: -i video.mp4 -vcodec copy -acodec copy -t :: ...

  8. thymeleaf中img标签图片src路径问题

    转载自:解决java - Thymeleaf conditional img src 正确写法. <img class="layui-nav-img" th:src=&quo ...

  9. JAVA 基础编程练习题34 【程序 34 三个数排序】

    34 [程序 34 三个数排序] 题目:输入 3 个数 a,b,c,按大小顺序输出. 程序分析:利用指针方法. package cskaoyan; public class cskaoyan34 { ...

  10. JS 事件介绍

    1.设置js对象属性为事件处理程序 事件处理程序属性的名字由“on”后面跟着事件名组成.这些属性名 都必须小写 事件处理程序的缺点:设计都是围绕着假设每个事件目标对于每种事件类型将最多只有一个处理程序 ...