随笔分类 -  Django Rest Framework

摘要:Django使用Python内建的logging模块打印日志,配置由四个部分组成 记录器:Logger 处理程序:Handler 过滤器:Filter 格式化:formatter 记录器-Logger Logger为日志系统的入口,每个logger命名都是bucket,可以向bucket写入需要处理 阅读全文
posted @ 2023-02-14 20:21 木子七 阅读(1074) 评论(0) 推荐(0) 编辑
摘要:Django Rest Framework提供了corsheaders模块解决跨域问题 安装模块 pip3.9 install django-cors-headers 注册应用 # 注册 corsheaders 模块 INSTALLED_APPS = [ ... 'corsheaders', ] 配 阅读全文
posted @ 2023-01-10 19:25 木子七 阅读(95) 评论(0) 推荐(0) 编辑
摘要:版本控制 版本控制是前后端分离开发一个非常重要的内容,比如说我们重要服务修改、升级等发生版本变化v1、v2、v3等,但是版本发生了变化比如 v1升级到了v2版本,v1版本还有业务在继续使用,相当于同时多个版本接口共存使用 DRF版本控制配置 DRF中的版本控制默认是不开启的,request.vers 阅读全文
posted @ 2023-01-03 13:45 木子七 阅读(63) 评论(0) 推荐(0) 编辑
摘要:分页Pagination 当我们在PC 或者 App 有大量数据需要展示时,可以对数据进行分页展示。这时就用到了分页功能,分页使得数据更好的展示给用户 比如我们有1W+数据要返回给前端,数据量大一次性返回可能会比较慢,前端一次性展示1W+数据也会比较慢,用分页返回数据效果较好 前端分页和后端分页的区 阅读全文
posted @ 2022-12-29 18:07 木子七 阅读(569) 评论(0) 推荐(1) 编辑
摘要:DRF的过滤类 drf过滤器在filters模块中,主要有四个类 BaseFilterBackend:过滤基类,留好占位方法待后续继承 SearchFilter:继承BaseFilterBackend OrderingFilter:继承BaseFilterBackend DjangoObjectPe 阅读全文
posted @ 2022-11-09 15:36 木子七 阅读(302) 评论(0) 推荐(0) 编辑
摘要:什么是限流? 限流类似于权限机制,它也决定是否接受当前请求,用于控制客户端在某段时间内允许向API发出请求的次数,也就是频率 假设有客户端(比如爬虫程序)短时间发起大量请求,超过了服务器能够处理的能力,将会影响其他用户的正常使用 为了保证服务的稳定性,并防止接口受到恶意用户的攻击,我们可以对接口进行 阅读全文
posted @ 2022-10-25 15:33 木子七 阅读(580) 评论(1) 推荐(1) 编辑
摘要:DRF原有缓存 Django缓存、配置:https://www.cnblogs.com/Mickey-7/p/15792083.html Django为基于类的视图提供了一个 method_decorator 装饰器,用于为类视图添加缓存类别的装饰器, cache_page 和 vary_on_co 阅读全文
posted @ 2022-10-17 18:47 木子七 阅读(89) 评论(0) 推荐(1) 编辑
摘要:drf的权限类位于permission模块 如何确定权限 认证、限流,权限决定是否应该接收请求或拒绝访问 权限检查在视图的最开始处执行,在继续执行其他代码前 权限检查通常会使用request.user和request.auth属性中的身份认证信息来决定是否允许请求 不同级别的用户访问不同的api过程 阅读全文
posted @ 2022-10-13 14:39 木子七 阅读(178) 评论(0) 推荐(0) 编辑
摘要:JSON Web Token认证介绍 简称JWT认证,一般用于用户认证 JWT是一种相当新的标准,可用于基于token的身份验证 与内置的TokenAuthentication方案不同,JWT不需要使用数据库来验证令牌 优势:相较于传统的token,无需再服务端保存 基于传统token简单的实现认证 阅读全文
posted @ 2022-10-10 10:44 木子七 阅读(98) 评论(0) 推荐(0) 编辑
摘要:SessionAuthentication认证介绍 SessionAuthentication使用了Django默认的会话后端 适合AJAX客户端等运行在同样会话上下文环境中的模式 是DRF默认的认证方式之一 SessionAuthentication认证属性 #认证成功 SessionAuthen 阅读全文
posted @ 2022-10-09 18:56 木子七 阅读(54) 评论(0) 推荐(0) 编辑
摘要:TokenAuthentication认证介绍 TokenAuthentication是一种简单的基于令牌的HTTP认证 适用于CS架构,例如普通的桌面应用程序或移动客户端 TokenAuthentication认证使用 # 将rest_framework.authtoken 添加到 INSTALL 阅读全文
posted @ 2022-10-09 13:46 木子七 阅读(174) 评论(0) 推荐(0) 编辑
摘要:BasicAuthentication认证介绍 BasicAuthentication使用HTTP基本的认证机制 通过用户名/密码的方式验证,通常用于测试工作,尽量不要线上使用 用户名和密码必须在HTTP报文头部,为 Authorization 属性提供值为 Basic amFjazpmZWl4dW 阅读全文
posted @ 2022-10-09 11:33 木子七 阅读(198) 评论(0) 推荐(0) 编辑
摘要:认证 身份验证是将传入的请求与一组鉴别凭据关联的机制,然后使用权限和限流策略来确定是否允许请求进入 再权限和限流检查发生之前,以及在执行其他代码之前,实在在视图的最开始处运行身份验证 也就是说认证过程优先级最高,最先被执行 request.user属性通常设置为contrib.auth包的user类 阅读全文
posted @ 2022-10-09 11:00 木子七 阅读(69) 评论(0) 推荐(0) 编辑
摘要:关系字段用于表示模型之间的关联 Django中存在ForeignKey、MantToManyField和OneToOneField三种正向关系,以及反向关联和自定义关联 当继承 ModelSerializer 类的时候,包括关系型字段在内的所有字段会自动生成 StringRelatedField 使 阅读全文
posted @ 2022-10-08 18:53 木子七 阅读(51) 评论(0) 推荐(0) 编辑
摘要:drf在Django字段类型的基础上派生了自己的字段类型以及字段参数 序列化器的字段类型用于处理原始值和内部数据类型直接的转换 还可以用于验证输入、以及父对象检索和设置值 通用字段参数 read_only 该参数默认为false,设置为True的话则将字段变为只读 被设置成只读的字段可以包含在api 阅读全文
posted @ 2022-10-08 17:38 木子七 阅读(127) 评论(0) 推荐(0) 编辑
摘要:ListSerializer继承了BaseSerializer 一般情况下我们不直接使用ListSerializer ListSerializer会自动调用,序列化many=True的字段时,会自动调用ListSerializer # baseSerializer中的调用实现逻辑 def __new 阅读全文
posted @ 2022-10-08 16:09 木子七 阅读(79) 评论(0) 推荐(0) 编辑
摘要:HyperLinkedModelSerializer继承ModelSerializer,只是自动多出了一个url字段,其他都是一样的 不同之处在于使用超链接来表示关联关系而不是主键 默认情况下HyperLinkedModelSerializer序列化器包含一个url字段 url字段使用Hyperli 阅读全文
posted @ 2022-10-08 15:54 木子七 阅读(453) 评论(0) 推荐(1) 编辑
摘要:ModelSerializer特点 根据Model模型的定义,自动生成字段 自动生成相应的验证器 实现create和update 自动默认将关系字段映射成PrimaryKeyRelatedField主键关系字段 ModelSerializer指定序列化字段三种方法 class CategorySer 阅读全文
posted @ 2022-10-08 15:24 木子七 阅读(177) 评论(0) 推荐(0) 编辑
摘要:很多时候我们的模型设计并不只是单一的字段数据,还有多对多、1对多、关联等 序列化与单一的字段数据有所不同 模型类 ''' 如下三个模型类 Text分别与auth和category外键关联和多对多关联 ''' # 作者 class Auth(models.Model): username = mode 阅读全文
posted @ 2022-09-22 11:10 木子七 阅读(41) 评论(0) 推荐(0) 编辑
摘要:反序列化过程中 如果使用is_valid 验证字段通过,我们会获得一个validated_data数据字典 如果验证不通过,会获得一个errors数据字典,is_valid参数如果raise_exception设为True,会弹出ValidationError错误 除了DRF本身的验证,有时候我可以 阅读全文
posted @ 2022-09-21 14:23 木子七 阅读(53) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
workspaces
keyboard_arrow_up dark_mode palette
选择主题