Django rest-framework框架-用户权限实例
简单实例:
- 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框架-用户权限实例的更多相关文章
- Django Rest framework 框架之认证使用和源码执行流程
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...
- Django REST framework框架介绍和基本使用
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...
- Django Rest Framework(认证、权限、限制访问频率)
阅读原文Django Rest Framework(认证.权限.限制访问频率) django_rest_framework doc django_redis cache doc
- Django Rest Framework框架 ---- url控制器
Django Rest Framework框架 ---- url控制器
- web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝
web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...
- web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
web前端Vue+Django rest framework 框架 生鲜电商项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...
- Django Rest framework 框架
一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...
- 04 Django REST Framework 认证、权限和限制
目前,我们的API对谁可以编辑或删除代码段没有任何限制.我们希望有更高级的行为,以确保: 代码片段始终与创建者相关联. 只有通过身份验证的用户可以创建片段. 只有代码片段的创建者可以更新或删除它. 未 ...
- django 基于proxy实现用户权限管理
项目中经常会遇到用户权限管理的问题,django adminsite已经提供非常实用的用户权限管理机制.不过有些时候,我们希望根据相关用户属性来过滤adminsite中显示的内容.下文将结束如何实现: ...
随机推荐
- 安装Chrome扩展程序xpath
最近工作用到xpath,直接从浏览器复制下来路径时常会出错而且长度很长,于是我想到之前用过的一款chrome插件,可以直接编写xpath语句,并实时出现解析出的结果,检验xpath语句是否编写正确.效 ...
- selenium 隐式等待报错 value must be a non-negative integer
笔者运行代码使用selenium的隐式等待时出现报错: from selenium import webdriver # 从selenium导入webdriver import time driver ...
- 转载:OutOfMemoryError系列(2): GC overhead limit exceeded
这是本系列的第二篇文章, 相关文章列表: OutOfMemoryError系列(1): Java heap space OutOfMemoryError系列(2): GC overhead limit ...
- P3015 [USACO11FEB]最好的括号Best Parenthesis
P3015 [USACO11FEB]最好的括号Best Parenthesis 题解 一定要开 long long !!! 通过阅读英文题面我们知道所给出的字符串是已经匹配好的,所以我们只是计算就好了 ...
- 回归regression
X-Y存在某种映射关系,回归:确定出关系模型.
- ForkJoinPool 源码分析
ForkJoinPool ForkJoinPool 是一个运行 ForkJoinTask 任务.支持工作窃取和并行计算的线程池 核心参数+创建实例 // 工作者线程驻留任务队列索引位 static f ...
- Swift 基本语法
如果创建的是 OS X playground 需要引入 Cocoa : import Cocoa /* 我的第一个 Swift 程序 */ var myString = "Hello, Wo ...
- kotlin异常类
kotlin中所有的错误异常类都是throwable的自雷,没各一次都能带有一个错误消息,调用堆栈,以及可选的错误原因,要抛出异常,可以使用throw表达式 throw myException(&qu ...
- 分JOB实例
*&---------------------------------------------------------------------* *& Form F_SET_JOB * ...
- nginx和php-fpm 是使用 tcp socket 还是 unix socket ?
转自 http://blog.csdn.net/qq624202120/article/details/60957634 从上面的图片可以看,unix socket减少了不必要的tcp开销,而tcp需 ...