美文网首页
DRF使用记录(四) - 功能补充

DRF使用记录(四) - 功能补充

作者: 憧憬001 | 来源:发表于2020-01-11 17:53 被阅读0次

功能补充

分页Pagination

全局设置

setting.py文件

REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS':  'rest_framework.pagination.PageNumberPagination',
    'PAGE_SIZE': 10  # 每页数目
}
局部设置(自定义)
PageNumberPagination分页器
  • 自定义Pagination
  • 视图中通过pagination_clas属性指明
class YourPagination(PageNumberPagination):
    page_size = 10
    page_size_query_param = 'size'
    max_page_size = 100
    page_query_param = "page"  # page和size参数名都可自定义
class YourlView(RetrieveAPIView):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoSerializer
    pagination_class = YourPagination # 指定分页器

访问:GET 127.0.0.1:8000/users?page=2&size=5

  • page_size 每页数目

  • page_query_param 前端发送的页数关键字名,默认为"page"

  • page_size_query_param 前端发送的每页数目关键字名,默认为None

  • max_page_size前端最多能设置的每页数量

  • 如果在视图内关闭分页功能,只需在视图内设置

pagination_class = None
LimitOffsetPagination分页器
from rest_framework.pagination import LimitOffsetPagination
class YourPagination(LimitOffsetPagination):
    # 默认每一页查询的数据量,类似上面的page_size
    default_limit = 2
    limit_query_param = "limit"
    offset_query_param = "offset"
    max_limit = 100

class YourAPIView(ListAPIView):
    queryset = Student.objects.all()
    serializer_class = StudentModelSerializer
    pagination_class = YourPagination
  • default_limit 默认限制,默认值与PAGE_SIZE设置一直
  • limit_query_param limit参数名,默认'limit'
  • offset_query_param offset参数名,默认'offset'
  • max_limit 最大limit限制,默认None

访问:GET 127.0.0.1:8000/users?offset=2&limit=5

接口文档

  • REST framework提供了自动生成接口文档功能
  • 接口文档以网页的方式呈现
  • 自动接口文档能生成的是继承自APIView及其子类的视图
安装依赖
  • REST framewrok生成接口文档需要coreapi库的支持
pip install coreapi -i https://pypi.douban.com/simple
settings.py文件配置
REST_FRAMEWORK = {
    'DEFAULT_SCHEMA_CLASS': 'rest_framework.schemas.AutoSchema'
}
配置访问路由
  • 在总路由中添加接口文档路径
  • 文档路由对应的视图配置为rest_framework.documentation.include_docs_urls
  • 参数title为接口文档网站的标题
from rest_framework.documentation import include_docs_urls

urlpatterns = [
    ...
    path('docs/', include_docs_urls(title='xxxAPI接口文档'))
]
文档说明定义
  • 单一方法的视图,可直接使用类视图的文档字符串
class UserListView(generics.ListAPIView):
    """
    返回所有用户信息
    """
  • 多个方法的视图
class UserListCreateView(generics.ListCreateAPIView):
    """
    get:
    返回所有用户信息

    post:
    新建用户
    """

访问 GET 127.0.0.1:8000/docs/

在这里插入图片描述

Demo代码

drf_demo

待续...

相关文章

  • DRF使用记录(四) - 功能补充

    功能补充 分页Pagination 全局设置 setting.py文件 局部设置(自定义) PageNumberP...

  • DRF使用记录(一) 初体验

    drf使用记录(一) drf初体验 drf(Django REST framework) 下面简单体验一下drf ...

  • django rest framework

    DRF安装 DRF配置 DRF基础 过滤器 DRF的分页功能 全局配置 局部配置

  • DRF使用记录(三) - 视图

    drf使用记录(三) - 视图 视图之前还忘记了点啥 模型类序列化器 DRF为我们提供了ModelSerializ...

  • DRF使用simpleJWT记录

    安装 pip install djangorestframework_simplejwt 设置配置文件 在项目se...

  • drf 一

    目录 1.drf简单使用 2.drf快速使用 2.1 views.py 2.2 serializer.py 2.3...

  • 查漏补缺

    Django drf listserializers的使用 source的使用

  • Django-filter 使用记录

    Django-filter 使用记录 配合DRF食用更佳 安装及注册 示例model 过滤 方式一 视图层直接设置...

  • vue 常用的一些通用方法

    整理一些开发中经常使用的功能,慢慢补充,记录在utils.js,遇到的就记录一下。 一、数组去重 通过filter...

  • 第一章 DRF概述

    第一章 DRF概述 第二章 DRF安装与项目创建 第三章 DRF之View进化论 第四章 DRF之Router 和...

网友评论

      本文标题:DRF使用记录(四) - 功能补充

      本文链接:https://www.haomeiwen.com/subject/dwlbactx.html