94 DRF 版本.权限和频率

主要内容:   https://www.cnblogs.com/GGGG-XXXX/articles/9682663.html

     第94天的文件夹里(c盘workspace)

1 版本:

   源码流程:   主要是重写了determine_version版本, 返回值是版本

权限:

 源码流程: 主要是重写了has-permission方法, 返回值默认是true, 所有人都有权限

频率

 a : 原理:

    1 拿到用户的IP地址
    2 访问记录: {IP: [最近访问时间,....第一次的访问时间]}
    3 确保这个列表最近的访问时间以及最远的访问时间差 《= 规定时间
    4 判断列表的长度 《= 设置的访问频率

 b : 使用DRF内部的配置类:

    必须实现get_cache_key()方法

    必须配置scope

    setting中的配置:

      REST_FRAMEWORK = {        

      "DEFAULT_THROTTLE_RATES": {
      "WD": "3/m"}                 }

 c : 使用DRF的频率类

class DRFthrottle(SimpleRateThrottle):
    scope = 'WD'
    def get_cache_key(self, request, view):
        return self.get_ident(request)

  

 

posted @ 2018-11-25 21:13  ...绿茵  阅读(116)  评论(0编辑  收藏  举报
1