认证的基本使用
局部配置
自定义认证类
在视图通过authentication_classes设置认证类
authentication_classes = [MyOrderAuthentication,]
如果 authentication_classes 设置为空列表,就不再进行认证了 authentication_classes = []
全局配置 :在settings配置文件中设置全局默认的认证
REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES'['unitls.authentication.MyOrderAuthentication'],
}
权限的基本使用
局部配置
自定义权限类 类,必须继承:BasePermission,必须实现:has_permission方法
在视图中通过permission_classes属性来设置
permission_classes = [MyOrderPermission,]
如果authentication_classes设置为空列表,就不再进行权限认证了 permission_classes = []
全局配置 :在settings配置文件中设置全局默认的权限
REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES':['unitls.permission.MyOrderPermission'],
}
节流的基本使用
可以根据ip和用户进行节流
局部配置
自定义节流类
在视图中通过throttle_classes属性来设置
throttle_classes = [VisitThrottle,]
全局配置 :在settings配置文件中设置全局默认的节流
REST_FRAMEWORK = {'DEFAULT_THROTTLE_CLASSES':['unitls.throttle.VisitThrottle'],
}
使用内置限制类
from rest_framework.throttling import SimpleRateThrottle
推荐使用这种
class VisitThrottle(SimpleRateThrottle):
没有登录用户,每分钟访问10次
scope = 'logined'
def get_cache_key(self, request, view):
return request.user.username
版本的基本使用
局部配置
自定义版本控制类 ParmasVersion
在视图中通过versioning_class属性来设置
versioning_class = ParmasVersion
全局配置 :在settings配置文件中设置全局默认的版本
REST_FRAMEWORK = 'DEFAULT_VERSIONING_CLASS':'unitls.version.ParmasVersion',
设置文件中的配置信息
REST_FRAMEWORK = {
'VERSION_PARAM':'version',
'DEFAULT_VERSION':'v1',
'ALLOWED_VERSIONS':['v1','v2'],
}
全局设置
REST_FRAMEWORK = {
'VERSION_PARAM':'version',
'DEFAULT_VERSION':'v1',
'ALLOWED_VERSIONS':['v1','v2'],
'DEFAULT_VERSIONING_CLASS':'rest_framework.versioning.URLPathVersioning',
}
解析器的基本使用
DRF内置的解析器FormParser,JSONParser
局部配置在视图函数中配置parser_classes=[JSONParser,]
全局配置在settings文件中设定
REST_FRAMEWORK={'DEFAULT_PARSER_CLASSES':['rest_framework.parsers.JSONParser'],
}