使用 from rest_framework.throttling import AnonRateThrottle from rest_framework.generics import ListAPIView,CreateAPIView,UpdateAPIView,DestroyAPIView,RetrieveAPIView from api.serializer.articleserializer import ArticleSerializer from api import models…
权限的使用 全局使用 from rest_framework.permissions import BasePermission from rest_framework import exceptions class MyPermission(BasePermission): message = {'code': 10001, 'error': '你没权限'} #没有权限的报错信息 def has_permission(self, request, view): #使用多条数据的时候 if re…
认证的使用 from rest_framework.authentication import BaseAuthentication from api import models # 认证类 class TokenAuthentication(BaseAuthentication): def authenticate(self, request): token = request.query_params.get('token') user_object = models.UserInfo.ob…
版本的使用 第一步:写路由url(r'^api/(P<version>\w+)/user/$',views.UserView.as_view()), 第二步:写模块导入from rest_framework.versioning import URLPathVersioning 第三步:写视图 可不写 request.version获取版本号 class UserView(APIView): # DEFAULT_VERSIONING_CLASS在APIView中默认配置 def get(sel…
核心源码 def check_throttles(self, request): """ Check if request should be throttled. Raises an appropriate exception if the request is throttled. """ for throttle in self.get_throttles(): if not throttle.allow_request(request,…
07 drf源码剖析之节流 目录 07 drf源码剖析之节流 1. 节流简述 2. 节流使用 3. 源码剖析 总结: 1. 节流简述 节流类似于权限,它确定是否应授权请求.节流指示临时状态,并用于控制客户端可以向API发出的请求的速率. 还有情况可能是 ,由于某些服务特别耗费资源,因此您需要在API的不同部分施加不同的约束. 频率限制在认证.权限之后 2. 节流使用 在settings配置文件中设置规定时间段内可以访问的次数 REST_FRAMEWORK = { "DEFAULT_THROTTL…
更多MyCat源码分析,请戳MyCat源码分析系列 BufferPool MyCat的缓冲区采用的是java.nio.ByteBuffer,由BufferPool类统一管理,相关的设置在SystemConfig中.先明确一下相关概念和配置: 每个Buffer单元称之为一个chunk,默认chunk的大小(DEFAULT_BUFFER_CHUNK_SIZE)为4096字节 BufferPool的总大小为DEFAULT_BUFFER_CHUNK_SIZE * processors * 1000,其中…
更多MyCat源码分析,请戳MyCat源码分析系列 MyCat配置信息 除了一些默认的配置参数,大多数的MyCat配置信息是通过读取若干.xml/.properties文件获取的,主要包括: 1)server.xml:系统和用户相关配置 2)schema.xml:虚拟库.表.数据节点配置等 3)rule.xml:分片规则设置 4)cacheservice.properties:缓存相关设置 5)dnindex.properties:datahost主从切换配置文件 6)sequence_conf…
目前国内比较流行的php框架由thinkphp,yii,Zend Framework,CodeIgniter等.一直觉得自己在php方面还是一个小学生,只会用别人的框架,自己也没有写过,当然不是自己不想写,而是感觉自己的实力不够,哈哈..那么如何使得自己的编码能力变得强悍呢,那当然是去看别人写的优秀的代码了.所以今天终于准备自己写一个源码分析系列,目的很简单,就是希望自己能够在php方面能够更上一层楼. 关于为什么选择thinkphp,原因主要有以下几点:第一,周围的同学和公司用的几乎都是thi…
1.简介 我从七月份开始阅读MyBatis源码,并在随后的40天内陆续更新了7篇文章.起初,我只是打算通过博客的形式进行分享.但在写作的过程中,发现要分析的代码太多,以至于文章篇幅特别大.在这7篇文章中,有4篇文章字数超过了1万,最长的一篇文章约有2.7万字(含代码).考虑到超长文章对读者不太友好,以及拆分文章工作量也不小等问题.遂决定将博文整理成电子书,方便大家阅读. 经过两周紧张的排版,<一本小小的MyBatis源码分析书>诞生了.本书共7章,约300页.本书以电子书的形式发布,大家可自由…