django-rest-framework分页pagination和自动生成api文档

法玮
2023-12-01

通过 pagination 进行分页 和 自动生成api文档的schema

自定义pagination类

    from rest_framework.pagination import PageNumberPagination
    class MyPagination(PageNumberPagination):
        page_size = 16                        # 每页16条(默认)
        max_page_size = 50                    # 最大每页条数(根据传入的值分页)
        page_query_param = "page"             # 前端url中传入的‘页数’名字
        page_size_query_param = "page_size"   # 前端url中传入的每页的数据条数
定义完了之后再类试图中加上:pagination_class = MyPagination 就可以了
此时访问: 
http://xxx.website.com/users-list/?page=30&page=3
表示每页30 条,第3页

自动生成api文档(不管是函数视图还是类视图都能显示)

  1. 安装rest_framework_swagger库

    • pip install django-rest-swagger
    • 在settings中加入:’rest_framework_swagger’
  2. 在项目下的 urls.py 中利用rest_framework自动生成api文档

    from rest_framework.schema import get_schema_view
    from rest_framework_swagger.renderers import SwaggerUIRenderer, OpenAPIRenderer

    schema_view = get_schema_view(title="api 文档", renderer_classes=(SwaggerUIRenderer, OpenAPIRenderer))

    urlpatterns = [
        url(r'^docs/$', schema_view, name="api 文档"),
    ]
    # 这时候你runserver,然后访问 localhost:8000/docs/ 就看到自动生成的文档了,注意
    # 需要登陆的接口只有登陆后才能看文档。
 类似资料: