当前位置: 首页 > article >正文

Django DRF - 权限Permissions

权限Permissions

权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。

  • 在执行视图的dispatch()方法前,会先进行视图访问权限的判断
  • 在通过get_object()获取具体对象时,会进行对象访问权限的判断

1.提供的权限

  • AllowAny 允许所有用户
  • IsAuthenticated 仅通过认证的用户
  • IsAdminUser 仅管理员用户
  • IsAuthenticatedOrReadOnly 认证的用户可以完全操作,否则只能get读取

2.使用

可以在配置文件中设置默认的权限管理类,如

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

如果未指明,则采用如下默认配置

'DEFAULT_PERMISSION_CLASSES': (
   'rest_framework.permissions.AllowAny',
)

也可以在具体的视图中通过permission_classes属性来设置,如

from book.models import BookInfo
from book.serializers import BookInfoModelSerializer
from rest_framework.viewsets import ModelViewSet
from rest_framework.authentication import SessionAuthentication

class BookModelViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoModelSerializer

    #单个视图,设置单独认证方式
    authentication_classes = [SessionAuthentication]

3.指定视图设置

from book.models import BookInfo
from book.serializers import BookInfoModelSerializer
from rest_framework.viewsets import ModelViewSet
from rest_framework.authentication import SessionAuthentication
from rest_framework.permissions import AllowAny

class BookModelViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoModelSerializer

    #单个视图,设置单独认证方式
    authentication_classes = [SessionAuthentication]
    #设置单独的权限
    permission_classes = [AllowAny]

以上就是Django DRF 的权限认证的设置,希望对你有所帮助。
内容很简单,更多的需要可以参考官方文档:https://www.django-rest-framework.org/api-guide/permissions/


http://www.kler.cn/news/9886.html

相关文章:

  • stable-diffusion-webui浅叙
  • Python每日一练(20230413)
  • sql server 入门教程
  • 知识图谱:Neo4j数据库的基本使用——创建张学良的关系谱
  • 安全防御第四天:防病毒网关
  • 基于目标级联法的微网群多主体分布式优化调度(Matlab代码实现)
  • 花了近三周时间对 ChatGPT 进行多方面了解、体验后写的报告,超级全面,建议想了解的朋友看看
  • Spring 源码分析(二)——GenericBeanDefinition 分析
  • Java知识点学习(第6天)
  • SQL Server的日志传送
  • 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务
  • 机器学习-问答题准备(英文)-更新中
  • 用JavaScript实现最大子数组和的动态规划算法
  • Msray-Plus采集工具让您的市场营销更加简单,让您的营销成果更加显著
  • NumPy 秘籍中文第二版:十二、使用 NumPy 进行探索性和预测性数据分析
  • 吐血奉献精心整理的一大波数据集
  • 【C#】程序和sql速度对比
  • 【消息队列】聊一下生产者消息发送流程
  • 7nm舱泊一体SoC的新玩家
  • 三大前端框架Vue, Angular, React
  • 月薪过 3w 的 软件测试工程师 都是怎么做到的?
  • Spring Security 6.0系列【16】授权篇之访问控制
  • 国网B接口调阅实时视频规范解读和代码示例分析
  • 代码随想录_二叉树_leetcode236
  • Java阶段一Day19
  • 值栈的概念和作用是什么?
  • 关于iptables封禁国外IP方法
  • 多模态模型技术综述
  • 第一章 webpack与构建发展简史
  • 【Spring】@ConfigurationProperties 注解的简单使用和介绍