RestFramework之註冊器、響應器與分頁器
阿新 • • 發佈:2018-12-11
一、註冊器的說明與使用
在我們編寫url時經常會因請求方式不同,而重複編寫某條url,而rest_framework中的註冊器幫我節省了很多程式碼
下面介紹一下如何使用
# 利用註冊器來實現路由分發 from rest_framework import routers # 匯入 router = routers.DefaultRouter() # 例項化物件 router.register('book',views.BookView) # 註冊
還需要在urlpatterns中加入
re_path('^',include(router.urls))
還有更多功能如直接檢視資料格式等等
二、響應器的使用
響應器的作用就是讓瀏覽器不在返回django rest_framework做的那個網頁,而是直接返回資料
使用方法:
1.首先在views匯入
from rest_framework.renderers import JSONRenderer # 響應器
2.在檢視類中設定,指定返回類
render_classes = [JsonRender]
全都配置好之後再去訪問瀏覽器時就不會在返回頁面了
三、分頁器的使用
分頁器的使用:
- 匯入模組 from rest_framework.pagination import PageNumberPagination - 獲取資料 books = Book.objects.all() - 建立一個分頁器物件 paginater = PageNumberPagination() - 開始分頁 paged_books= paginater.paginate_queryset(books, request) - 開始序列化 serialized_books = BookSerializer(paged_books, many=True) - 返回資料 return Response(serialized_books.data)
當我們用到檢視類中繼承ModelViewSet時需要自己編寫分頁類
1.首先需要匯入模組
from rest_framework.pagination import PageNumberPagination
2.編寫分頁器
class ThePagination(PageNumberPagination): page_size = 2 # 每次獲取的數量 page_query_param = 'page' # url上的page引數 page_size_query_param = 'size' # 臨時要取資料的時候,可以在url上加的引數size max_page_size = 4 # 限制最多可以獲取資料的多少
3.最後還要在檢視類中加入
pagination_class = ThePagination # 分頁器
測試一下: