
django-rest-framework
文章平均质量分 89
爱学习的狮王
既然选择了远方,便只顾风雨兼程!!!
展开
-
Django+Vue实现各样式文件下载
Django:# 这里返回一个迭代器,防止文件过大将内存打满,这样可以保证服务的占用内存几乎没有波动def read_file(file_name, buf_size=409600): with open(file_name, "rb") as f: while True: c = f.read(buf_size) if c: yield c else:原创 2021-12-10 11:41:59 · 1492 阅读 · 0 评论 -
Django优化(减少数据库查询次数)---select_related和prefetch_related的使用
在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能。本文通过一个简单的例子从QuerySet触发的SQL语句来分析工作方式,从而进一步了解Django具体的运作方式。0.初始化打开log调试,在setting中加入LOGGING = { 'version':1, 'disable...原创 2019-07-10 19:19:04 · 1355 阅读 · 0 评论 -
drf的序列化递归深度问题
当序列化某些外键时,返回的只是我们外键所对应的id,这时如果我们想要显示外键对应的详细信息应该如何做到呢?两种方法:一种是 外键name = 外键类Serializer(many=True, read_only=True)另外一种是在 序列化类里面的 class Meta: 下加一句 depth=1第一种方法适用于我们想要序列化字段中的某一个外键,第二种方法是要将我们要序列化中所有字...原创 2019-03-29 10:33:58 · 1784 阅读 · 0 评论 -
Django-restframework之视图类详解
视图:视图函数继承表 |->mixins.CreateModelMixin, POST创建 |->mixins.RetrieveModelMixin, Retrieve(get)显示单条 ModelViewSet |->mixins.UpdateModelMixin, put,patch更新 ...原创 2018-12-11 16:05:59 · 445 阅读 · 0 评论 -
restframework中的分页
rest_framework中的分页:数据量很大时,原生sql的分页查询当数据量越来越大,对数据库的压力也越来越大,在rest_framework中分页可以记住当前页最大值,最小值,当下次分页根据大于或者小于他记住的值来做,但是url中可以用户自己输入多少页,所以可以使用CursorPagination类对页码进行加密。from rest_framework.pagination impo...原创 2018-12-11 15:40:07 · 636 阅读 · 0 评论 -
restframework单元测试
示例代码:from rest_framework import statusfrom rest_framework.serializers import Serializerfrom rest_framework.test import APITestCasefrom apps.models import Userclass UserAPITests(APITestCase):# 此测...原创 2018-12-11 10:17:19 · 1231 阅读 · 0 评论 -
restframework--序列化
序列化一:序列化1、写类,可以继承Serializer或者ModelSerializer使用这种方式序列化时,对于特殊字段(一对多ForeignKey、多对多ManyToMany),serializers没有提供对应的字段,需要指定特殊的方式,因为obj.这个字段时,得到的是一个对象,所以我们对于ForeignKey,需要使用一个CharField字段,然后在这个字段中指定一个source属...原创 2018-12-09 21:58:05 · 421 阅读 · 0 评论 -
DRF的访问频率控制源码分析及应用
一:restframework的访问频率控制源码分析1、还是首先访问dispatch2、进入initial中,self.check_throttles(request):实现频率控制,进去看源码3、for throttle in self.get_throttles():又是一个循环遍历4、进去self.get_throttles(),还是一个列表生成式,返回的是一个类的实例的列表ret...原创 2018-12-09 14:06:26 · 461 阅读 · 0 评论 -
restful
以下是设计REST API的提示,建议和建议,使您的用户满意。引用自:API design1.了解应用于REST的HTTP的基础知识如果您要构建设计良好的REST API,您最好了解HTTP协议的基础知识。我真的相信这将有助于您做出更好的设计决策。我发现MDN Web文档上的HTTP概述对此非常好。但是,就REST API设计而言,这里是TL; 应用于REST的HTTP的 DR :HTT...原创 2018-12-06 10:13:07 · 329 阅读 · 0 评论 -
权限验证代码详解及自定义权限验证类
一、权限认证源码详解1、进入dispatch2、initial中self.check_permissions(request)进行权限验证3、进入check_permissionsfor permission in self.get_permissions():4、进入get_permissions返回一个权限类的对象列表[permission() for permission in...原创 2018-12-08 22:52:00 · 1486 阅读 · 1 评论 -
restframework的内置认证类
restframework的内置认证类认证类必须继承:from rest_framework.authentication import BaseAuthentication其他认证类:from rest_framework.authentication import BasicAuthenticationfrom rest_framework.authentication import ...原创 2018-12-07 23:47:55 · 216 阅读 · 0 评论 -
rest framwork之登录验证源码解析
登录认证流程1、请求进来先找APIView的dispatch2、对request进行了封装Request( request, parsers=self.get_parsers(), authenticators=self.get_authenticators(),#[BasicAuthentication()对象,] ...原创 2018-12-07 23:34:16 · 575 阅读 · 0 评论