随笔分类 - Django restframework
摘要:对接口访问的频次进行限制,以减轻服务器压力(反爬虫的一种手段)。 一、前期知识准备 1、限流类型 AnonRateThrottle 限制所有匿名未认证用户,使用IP区分用户。 使用DEFAULT_THROTTLE_RATES['anon'] 来设置频次 UserRateThrottle 限制认证用户
阅读全文
摘要:REST framework提供了分页的支持 一、全局配置(不建议使用) 在配置文件中设置全局的分页方式: REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
阅读全文
摘要:对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序 1、在setting中的REST_FRAMEWORK添加配置 'DEFAULT_FILTER_BACKENDS': ( # 这个是指定使用django_filters中的过滤
阅读全文
摘要:前言 第三方库drf-yasg(Django Rest Swagger)。它是一个为Django Rest Framework提供Swagger/OpenAPI规范支持的库。按照以下步骤进行操作: 安装 pip install drf-yasg -i http://mirrors.aliyun.co
阅读全文
摘要:一、数据准备 模型类 class UserInfo(models.Model): name = models.CharField(max_length=20, verbose_name='用户名') pwd = models.CharField(max_length=18, verbose_name
阅读全文
摘要:REST framework通过第三方库可以自动帮助我们生成网页版的接口文档,自动接口文档能生成的是继承自APIView及其子类的视图 1、安装依赖 REST framewrok生成接口文档需要coreapi库的支持 pip install coreapi -i http://mirrors.ali
阅读全文
摘要:REST framework提供了异常处理,我们可以自定义异常处理函数 from rest_framework.views import exception_handler def custom_exception_handler(exc, context): # 先调用REST framework
阅读全文
摘要:一、数据反序列化使用 1、基本使用 使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型类对象。在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返回False 使用: >>> from demo.serializer imp
阅读全文
摘要:说明 只写模型类、不写__str__ 效果 写模型类、写__str__ 效果 总结 在定义模型类中,一定要重写,将模型类以字符串的方式输出 延伸阅读: https://segmentfault.com/q/1010000006121303
阅读全文
摘要:1. Request REST framework 传入视图的request对象不再是Django默认的HttpRequest对象,而是REST framework提供的扩展了HttpRequest类的Request类的对象。 REST framework 提供了Parser解析器,在接收到请求后会
阅读全文
摘要:如果我们想要使用序列化器对应的是Django的模型类,DRF为我们提供了ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类 ModelSerializer与常规的Serializer相同,但提供了 基于模型类自动生成一系列字段 基于模型类自动为Serialize
阅读全文
摘要:路由Routers 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息 REST framework提供了两个router SimpleRouter DefaultRouter 1. 使用方法 1) 创建r
阅读全文
摘要:环境准备 请参考 urls.py from . import views from django.urls import path, re_path, include urlpatterns = [ path('user/', views.UserAPIView.as_view()), re_pat
阅读全文
摘要:1、在序列化与反序列化时,虽然操作的数据不尽相同,但是执行的过程却是相似的,也就是说这部分代码是可以复用简化编写的。 2、在开发REST API的视图中,虽然每个视图具体操作的数据不同,但增、删、改、查的实现流程基本套路化,所以这部分代码也是可以复用简化编写的 增:校验请求数据 -> 执行反序列化过
阅读全文
摘要:定义方式 class ModelName(models.Model): ColName = models.CharField(maxlength=30) class Meta: ...... # 具体使用参数 Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项, admin 选项
阅读全文
摘要:环境安装与配置 REST 框架需要以下内容: Python(3.6、3.7、3.8、3.9、3.10) Django(2.2、3.0、3.1、3.2、4.0) DRF是以Django扩展应用的方式提供的,所以我们可以直接利用已有的Django环境而无需从新创建。(若没有Django环境,需要先创建环
阅读全文
摘要:中文文档 https://q1mi.github.io/Django-REST-framework-documentation/api-guide/views_zh/ 英文文档 https://www.django-rest-framework.org/
阅读全文