当前位置: 首页 > news >正文

昆山网站建设培训班seo营销策略

昆山网站建设培训班,seo营销策略,日本a片女人和狗做的网站,售后服务网站建设在DRF中,限流发生在认证、权限之后,限流组件的使用步骤: 1、编写自定义限流类; 2、在settings.py中配置redis; 3、安装django-redis; 4、启动redis服务; 5、局部应用,一般是在核心的视图中使用&…
 

在DRF中,限流发生在认证、权限之后,限流组件的使用步骤: 1、编写自定义限流类; 2、在settings.py中配置redis; 3、安装django-redis; 4、启动redis服务; 5、局部应用,一般是在核心的视图中使用,不会全局使用。限流组件的应用案例如下:

一、自定义限流类,throttle.py,设计了 2个限流类,一个是针对匿名用户的限流,匿名用户的唯一标识选择IP地址;一个针对登录用户的限流,登录用户的唯一标识是用户名。

from rest_framework.throttling import SimpleRateThrottle
from django.core.cache import cache as default_cache# 限流组件,匿名用户访问,没有登录的用户,肯定是没有user的,直接获取IP地址
class IpThrottle(SimpleRateThrottle):scope = "ip"# 局部配置,一分钟访问10次;也可以配置到全局;# THROTTLE_RATES = {"ip": "10/m"}cache = default_cache  # default_cache 会读取配置文件中redis缓存的配置def get_cache_key(self, request, view):# 获取请求用户的IP地址(去request中找请求头)ident = self.get_ident(request)return self.cache_format % {'scope': self.scope, 'ident': ident}# 限流组件,用户限流类
class UserThrottle(SimpleRateThrottle):scope = "user"# 局部配置,一分钟访问5次;也可以配置到全局;# THROTTLE_RATES = {"user": "5/m"}cache = default_cache  # default_cache 会读取配置文件中redis缓存的配置def get_cache_key(self, request, view):ident = request.user.pk  #用户IDreturn self.cache_format % {'scope': self.scope, 'ident': ident}

二、全局配置,settings.py

REST_FRAMEWORK = {# 限流全局配置"DEFAULT_THROTTLE_RATES":{"ip":"10/m","user":"5/m",}
}

三、 局部应用,views.py

from ext.throttle import IpThrottle,UserThrottleclass LoginView(APIView):# login页面不需要认证就可以登录,所以单独设置为空;authentication_classes = []permission_classes = []# 应用限流组件,使用IP限流throttle_classes = [IpThrottle,]def post(self,request):# 1、接收用户提交的用户名和密码;user = request.data.get("username")pwd = request.data.get("password")# 2、数据库校验;user_object = models.UserInfo.objects.filter(username=user,password=pwd).first()if not user_object:return Response({"status":False,"msg":"用户名或者密码错误"})# 用户名密码正确为用户生产tokentoken = str(uuid.uuid4())user_object.token = tokenuser_object.save()return Response({"status":True,"msg":"登录成功!","token":token})class AvatarView(NbApiView):# 老板或者员工可以访问permission_classes = [UserPermission,BossPermission]# 对登录用户使用登录用户限流throttle_classes = [UserThrottle,]def get(self,request):return Response({"status":True,"data":[11,22,33,44]})

http://www.sczhlp.com/news/15195/

相关文章:

  • 石门县建设局网站google关键词排名优化
  • 响应式网站制作流程图品牌推广
  • 权威的广州h5网站网站网络推广优化
  • 网站地址申请百度宣传推广
  • 专门做推广的公司兰州seo培训
  • 网站建设能在家工作搭建一个网站的流程
  • 2018做网站站长爱链在线
  • wordpress代码执行先后seo关键词优化的技巧和方法
  • 网站开发目录static谷歌推广培训
  • 洛谷 - P2863 [USACO06JAN] The Cow Prom S
  • MATLAB的地震模型构建和地震数据去噪
  • 湛江正规网站制作方案网站推广系统方案
  • 石家庄建站网页模板有哪些免费网站可以发布广告
  • 电脑版网站建设seo网络优化
  • 网站seo链接购买百度竞价返点一般多少
  • 网页制作模板如何制作娄底seo
  • 做网站销售提成怎么算网站宣传的方法有哪些
  • 语音助手理解中断问题的语义修复技术
  • redis跳表是一种数据结构,是zset有序集合的数据结构
  • centos配置静态IP
  • 衡阳电商网站建设防恶意竞价点击软件
  • 陕西哪些公司做企业网站提高工作效率的方法不正确的是
  • wordpress设置语言汕头seo不错
  • 文件上传网站源码百度搜索图片
  • 高性能网站建设 下载百度搜索官方网站
  • 网站对联代码百度学术官网
  • 乐从做网站网页设计培训学校
  • 网站建设应当注意哪些问题seo及网络推广招聘
  • 网页打不开无法访问此网站网络推广是什么职业
  • 杭州制造业企业做网站seo排名分析