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

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 SessionAuthenticationclass 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 AllowAnyclass 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.lryc.cn/news/58772.html

相关文章:

  • 二叉树(OJ)
  • mysql中增删改成的练习
  • 谈一谈Java的ThreadLocal
  • 边缘检测与阈值分割
  • QQ空间无敌装逼,复制下面的任一代码粘贴即可出现意想不到的图案。
  • 必看!总结5种JavaScript异步解决方案
  • JUC并发编程高级篇第四章之ThreadLocal(人手一份,天下安)
  • dump 定位分析
  • (十二)排序算法-插入排序
  • elasticsearch 认知
  • 《人体地图》笔记
  • java基础集合面试题
  • Vue学习-Vue入门
  • 【项目】bxg基于SaaS的餐掌柜项目实战(2023)
  • 灌区流量监测设备-中小灌区节水改造
  • SpringBoot2核心功能 --- 指标监控
  • python实战应用讲解-【numpy数组篇】常用函数(三)(附python示例代码)
  • DIN论文翻译
  • python列表,元组和字典
  • 300元左右的蓝牙耳机哪个好?300左右音质最好的蓝牙耳机
  • 【消息队列】聊一下生产者消息发送流程
  • 特斯拉和OpenAI的加持,马斯克简直人生赢家
  • 优维低代码:第三方接口接入
  • SQL 177. 第N高的薪水
  • 14天手撸交互式问答数字人直播教程-课程计划
  • spring boot3.0新特性Http客户端远程调用
  • 查询联系:多表查询 - 1
  • 「Bug」OpenCV读取图像为 None 分析
  • EVO——视觉里程计/SLAM轨迹评估工具
  • TCP为什么要三次握手,而不是两次或四次?