通過 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文檔(不管是函數視圖還是類視圖都能顯示)
安裝rest_framework_swagger庫
- pip install django-rest-swagger
- 在settings中加入:’rest_framework_swagger’
在項目下的 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/ 就看到自動生成的文檔了,注意
# 需要登陸的接口只有登陸後才能看文檔。