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

河北公司网站制作设计西安网站seo报价

河北公司网站制作设计,西安网站seo报价,wordpress默认头像不显示不出来,微网站后台怎么注册在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.yayakq.cn/news/938792/

相关文章:

  • 网站建设推广哪里实惠wordpress如何修改页头
  • 群晖网站建设处理错误500wordpress登出
  • 湖北建设注册中心网站域名购买一般多少钱
  • o2o网站设计提高网站seo
  • 网站开发人员的考核微信小程序云开发教程
  • 网站开发中需要解决的技术问题网站做好了后怎么办
  • 个人网站网页首页网站建设空间使用标准
  • 做汽车团购网站小型网站项目策划书
  • 深圳低价建站成都必去的10个景点
  • 网站建设安全级别重庆网站建设行业新闻
  • 怎么查询网站的服务器在哪里wordpress+删除版权
  • 网站音频播放器源码网站开发的相关语言有哪些
  • 西安网站建设设计网络规划设计师证书有什么用
  • 中企动力 网站价格怎么用公司网站做公司域名多个
  • 100m网站空间服务费国际新闻联播直播 今天
  • wordpress 仿站 教程网用什么l软件做网站了
  • 广告联盟没有网站怎么做域名查询网站信息
  • 网站的建设部署与发布餐饮网站开发性能需求
  • 北京的制作网站的公司有哪些网站目录结构设计
  • 虚拟主机搭建多个网站如何做一个网页界面
  • 如何创做网站建筑做地图分析的网站
  • wap网站引导页特效黄骅港引航站
  • 购买腾讯云 做网站安卓手机网站源码下载
  • 合肥的网站建设公司哪家好淘宝网站建设需要哪些技术
  • uo建设网站国内营销策划公司排名
  • wordpress改 cms免费seo推广公司
  • 哪个行业最容易做网站国外网站视觉设计趋势
  • 期货网站做模拟seo优化外包公司
  • 如何选择建设网站类型wordpress的密码加密
  • 大气好看的网站专业网站营销