django-rest-framework中,认证、权限、限流讲解

1 . 认证

认证一般都是进行全局配置

此认证是给drf进行认证的,所以只有drf中定义的视图才会走此认证,也就是继承(APIView、GenericAPIView、ModelViewSet等),而继承django中的View是不走此认证的

2. 权限

(1)权限一般都是进行局部配置

(2)自定义权限:

此定义的MyPermission权限类,只能访问列表视图:查所有、新增,不能访问详情视图:查单一、修改单一、删除单一,因为has_object_permission方法返回的False

(3)自定义权限两个实例方法的书写:

from rest_framework.permissions import BasePermission


class MyPermission(BasePermission):
    def has_permission(self, request, view):
        # 此方法可以根据行为限制用户访问哪一个接口
        # 用户只能访问查所有接口和查单一接口
        if view.action == "retrieve" or view.action == "list":
            return True
        return False

    def has_object_permission(self, request, view, obj):
        # 此方法限制用户可以访问哪些具体实例数据(行数据)
        # 用户只能访问实例数据中btitle=="python"的详情数据
        if obj.btitle == "python":
            return True
        return False

3. 限流

(1)全局配置

(2)可选限流类

(3)实例

猜你喜欢

转载自blog.csdn.net/weixin_42289273/article/details/114225278
今日推荐