认证,权限,节流,版本,解析器 基本使用

2019-05-07  本文已影响0人  恬恬i阿萌妹O_o

认证的基本使用
局部配置
自定义认证类
在视图通过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'],
}
上一篇下一篇

猜你喜欢

热点阅读