DRF的註冊器,響應器和分頁器
阿新 • • 發佈:2018-12-11
一、DRF的註冊器
#匯入模組 from rest_framework import routers #例項化一個router物件 router = routers.DefaultRouter() #將需要自動生成url的介面註冊到router中 router.register("bookssss",views.BooksssView) #生成url urlpatterns = [ re_path(r'^', include('router.urls')), ]
二、響應器
from rest_framework.renderers import JSONRendererclass BookView(ModelViewSet): renderer_classes = [JSONRenderer] throttle_classes = [RateThrottle] queryset = Book.objects.all() serializer_class = BookSerializer
瀏覽器再次訪問,接收到的就是普通的json格式資料,而不是經過DRF格式化後的資料
三、分頁器
#匯入模組 from rest_framework.pagination import PageNumberPagination#獲取資料 books = Book.objects.all() #建立分頁器 paginater = app_paginates.MyPagination() #開始分頁 paged_books = paginater.paginate_queryset(books, request) #將分頁後的資料進行序列化 serialized_data = BookSerializer1(paged_books, many=True) #返回資料 return Response(serialized_data.data)
- page_size:用來控制每頁顯示多少條資料(全域性引數名為PAGE_SIZE);
- page_query_param:用來提供直接訪問某頁的資料;
- page_size_query_param:臨時調整當前顯示多少條資料
- max_page_size:控制page_size_query_param引數能調整的最大條數
自定義分頁
class MyPagination(PageNumberPagination): page_size = 2 page_query_param = 'p' page_size_query_param = 'size' max_page_size = 5 class BooksssView(ModelViewSet): pagination_class = MyPagination queryset = Book.objects.all() serializer_class = BookSerializer1