Django--权限Permissions的例子
作者:gy_98 发布时间:2021-02-16 01:44:51
标签:Django,权限,Permissions
权限全局配置:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
}
权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。
在执行视图的dispatch()方法前,会先进行视图访问权限的判断
在通过get_object()获取具体对象时,会进行对象访问权限的判断
如果不指定就用默认的配置:
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.AllowAny',
)
自定义权限:
from rest_framework.permissions import BasePermission
class MyPermission(BasePermission):
def has_object_permission(self, request, view, obj):
"""
控制对obj对象的访问权限,吃案例决绝对所有用户的访问
不能访问单一结果,但是可以访问列表结果
has_object_permission是否可以访问数据对象, view表示当前视图, obj为数据对象
.has_permission(self, request, view)是否可以访问视图, view表示当前视图对象
"""
return False
我们使用之前写的视图类进行验证:
from rest_framework.permissions import IsAuthenticated
class BookInfoViewSet(mixins.ListModelMixin,mixins.RetrieveModelMixin,GenericViewSet):
"""使用GenericViewSet实现返回列表和单一值"""
# 指定序列化器
serializer_class = BookInfoSerializer
# 制定查询集
queryset = BookInfo.objects.all()
# authentication_classes = [SessionAuthentication]
# 登陆者的权限.是Admin还是普通用户 是admin可以访问还是普通用户可以访问
permission_classes = [IsAuthenticated,MyPermission]
提供的权限
AllowAny 允许所有用户
IsAuthenticated 仅通过认证的用户
IsAdminUser 仅管理员用户
IsAuthenticatedOrReadOnly 认证的用户可以完全操作,否则只能get读取
来源:https://blog.csdn.net/qq_42684307/article/details/81075887


猜你喜欢
- 本文实例讲述了Python连接MongoDB数据库的方法。分享给大家供大家参考,具体如下:Python使用pymongo操作MongoDB数
- 1、首先在本机安装ssh在cmd输入ssh,出现下面信息代表安装成功2、vscode安装 Remote - SSH 插件3、连接远程主机vs
- 前言当我们运行测试函数时,我们希望确保测试函数在运行结束后,可以自己清理掉对环境的影响。这样的话,它们就不会干扰任何其他的测试函数,更不会日
- vue-element-admin导入组件封装模板和样式首先封装一个类似的组件,首先需要注意的是,类似功能,vue-element-admi
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- python的uuid都是32位的,比较长,处理起来效率比较低,本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六
- 1.安装PDFminer3k使用pip 命令安装pip install pdfminer3k2.编写测试你可以在这里获得官方参考:PDFMi
- vue计算属性的缓存computed用法计算属性的缓存<!DOCTYPE html><html lang="en
- 前言最近在使用Pycharm,在运行或者安装的过程中出现了各种各样的报错,前面已经介绍过安装pygame出现报错的解决方法。文章总结了大部分
- 概述从今天开始我们将开启一段自然语言处理 (NLP) 的旅程. 自然语言处理可以让来处理, 理解, 以及运用人类的语言, 实现机器语言和人类
- 实例如下:#coding=utf-8import subprocessfrom time import *import win32apiim
- 随着手机用户的不断增加,WAP站点如雨后春笋迅速的滋长开来,手机邮箱也不断的出现在人的眼前,笔者也曾经开发了一套手机邮箱的系统,但由于时间仓
- 1. 引言最近闲暇之余,我会去阅读一些Python文档,有时候会注意到一些有趣的Python特性,这些特性不禁让人惊呼:&ldquo
- 先看一张我绘制的原理图原理图setImmediate 也是宏任务,在 Node 环境下,微任务还有 process.nextTickJS 中
- 前言当使用pandas读取csv文件时,如果元素为空,则将其视为缺失值NaN(Not a Number, 非数字)。使用dropna()方法
- 1.背景在逆向Dephi程序时,会出现Dede软件可以看到函数的函数名,但是IDA逆向的时候看不到,为了解决这个问题,可以通过以下的方法来实
- 序 言哈喽兄弟们,好久不见!最近实在太忙了,所以又双叒叕断更了~表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我
- 创建类Python 类使用 class 关键字来创建。简单的类的声明可以是关键字后紧跟类名:class ClassName(bases):&
- 目录1. 字符串拆分函数.split()2. 字符串拼接函数.join()扩展:理解" ".join(s.split(&
- 系列一:图片格式介绍Gif格式特点透明性Gif是一种布尔透明类型,既它可以是全透明,也可以是全不透明,但是它并没有半透明(alpha 透明)