随笔分类 - Django REST framework
1
摘要:Simple JWT 安装 pip install djangorestframework_simplejwt settings.py REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework_simplejwt.a
阅读全文
摘要:drf结合rest-pandas实现下载excel文件 下载rest-pandas pip install rest-pandas 使用方法 在views.py文件中 from rest_pandas.views import PandasViewBase from rest_pandas.rend
阅读全文
摘要:SlugRelatedField字段的用法 该字段用于外键字段 该字段在序列化的时候多用于反向查询,在反序列化的时候用于接收关联表的唯一字段来生成该关联对象 eg: 序列化 class PublishListSerializer(serializers.ModelSerializer): book
阅读全文
摘要:django-filter用法 集成drf 不指定字段的过滤参数,那么该字段就默认为exact,精准匹配 自定义filter文件内 from django_filters import rest_framework as rs_filters from .models import * class
阅读全文
摘要:PrimaryKeyRelatedField 该字段可以用来映射外键字段,在反序列化的时候,不管与当前序列化类所对应的模型表有没有关联,前端只需要传一个包含多个主键值值的列表,然后传入参数queryset对应一个模型表,那么就会在序列化类里生成该表对应主键的该对象放在列表内。在序列化的时候,就只能是
阅读全文
摘要:drf按自定义字段排序返回数据 在serializer.py中 首先自定义字段 class BookSerializer(serializers.ModelSerializer): class Meta: model = Book fields = ['id', 'title', 'price',
阅读全文
摘要:自动生成接口文档(3星) 前言 流程: 后端人员写好接口,编写接口文档,给前端人员看,前端人员依照接口文档开发 公司里的主流: 后端,使用world,md写,提到git上 公司有接口平台,后端开发在接口平台录入(yapi,第三方),可以批量导入 后端项目自动生成接口文档(不是特别美观或友好,有时候还
阅读全文
摘要:分页Pagination(5星) 当我们的数据比较多的时候,就需要用到分页,一般在查询所有的接口中,才有分页功能,很常用,就是网站的下一页功能,app的下滑加载更多。 REST framework提供了分页的支持。配置分页类,继承GenericAPIView及子类,才能使用 PageNumberPa
阅读全文
摘要:JWT认证(5星) token发展史 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。 构成和工作原理 JWT的构成 JWT就是一段字符串,由三段信息构成的,将这三段信息
阅读全文
摘要:RBAC 介绍(4星) # RBAC:Role-Based Access Control -->基于角色的访问控制 # 公司内部系统,crm:客户关系管理,oa系统,自动化运维项目 # 原理:权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层
阅读全文
摘要:过滤和排序(4星) 查询所有才需要过滤(根据过滤条件),排序(按某个规律排序) 使用前提: 必须继承的顶层类是GenericAPIView, 所有指定的过滤字段都是和queryset对象里有的字段有关(即和对象所在的model表中所有的字段有关),和写序列化类里的字段无关 模糊查询 内置过滤类 使用
阅读全文
摘要:认证Authentication(5星) 认证逻辑及编写步骤 逻辑 认证类:用来校验用户是否登录,如果登录了,继续往下走,如果没有登录,直接返回 编写步骤 -第一步:写一个类,继承BaseAuthentication,重写authenticate,在方法中做校验,校验是否登录,返回两个值,没有登录抛
阅读全文
摘要:
阅读全文
摘要:路由组件(4星) 路由Routers 对于视图集ViewSet, 我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouter(推荐) DefaultRouter
阅读全文
摘要:视图组件(5星) APIView rest_framework.views.APIView APIView是REST framework提供的所有视图的基类,继承自Django的View父类。 APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request
阅读全文
摘要:请求与响应(3星) 请求:Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。 REST framework 提供了Parser解析
阅读全文
摘要:局部钩子和全局钩子源码分析(2星) # 入口是 ser.is_valid(),是BaseSerializer的方法 # 最核心的代码 self._validated_data = self.run_validation(self.initial_data) # 切记不要按住ctrl点 # run_v
阅读全文
摘要:序列化之Serializer类的使用(5星) 作用: 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 反序列化,完成数据校验功能 基本使用 模型类 class Books
阅读全文
摘要:cbv源码拓展 扩展,如果我在Book视图类中重写dispatch方法 -可以实现,在get,post方法执行之前或者之后执行代码,完成类似装饰器的效果 def dispatch(self, request, *args, **kwargs): # 请求执行前代码 response=super().
阅读全文
摘要:Web应用模式 前后端混合开发 像之前开发的bbs项目,使用render(request, 'index.html')类似这种,页面的渲染都是在后台完成的,包括用的模板语法,后端人员要写CSS,JS,HTML。 前后端分离开发 前后端分离开发现在是主流的方式,前端发展出一些框架(vue,react)
阅读全文
1