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)实例