• django框架-DRF工程之权限功能


    1.相对于flask,原生而言django,DRF做的则更加的合理化,想要给予用户相应的权限,首先需要在settings中进行配置

    REST_FRAMEWORK = {

      'DEAFAULT_PERMISSION_CLASSES':(

          'rest_framework.permissions.IsAuthenticated',

      )

    }

    如果没有指明是那种权限,则使用 ‘rest_framework.permissions.AllowAny’

    class ExampleView(APIView){

      permission_classes = (IsAuthenticated, )

    }

    2.权限类别

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

    3.自定义权限

    • .has_permission(self, request, view)

      是否可以访问视图, view表示当前视图对象

    • .has_object_permission(self, request, view, obj)

      是否可以访问数据对象, view表示当前视图, obj为数据对象

    举个例子:

    class MyPermission(BasePermission):
        def has_object_permission(self, request, view, obj):
            """控制对obj对象的访问权限,此案例决绝所有对对象的访问"""
            return False
    
    class BookInfoViewSet(ModelViewSet):
        queryset = BookInfo.objects.all()
        serializer_class = BookInfoSerializer
        permission_classes = [IsAuthenticated, MyPermission]
  • 相关阅读:
    什么是MSI文件?
    学习window系统下的注册表
    AngularJS学习手册
    学习ajax 总结
    jquery基础教程读书总结
    overflow:hidden清除浮动原理解析及清除浮动常用方法总结
    javascript进阶-原型prototype
    javascript-函数进阶
    小技巧之a标签自动解析URL
    Myeclipse出现 java文件中文乱码问题
  • 原文地址:https://www.cnblogs.com/zxh1297/p/9318033.html
Copyright © 2020-2023  润新知