単純なページ(Nページ、n個の表示を参照してください)
rest_framework.paginationのインポートPageNumberPagination #URL = URL =のhttp://127.0.0.1基本的な使用 :?8000 /ページャ/ページ= 2&サイズ= 3、サイズが有効でない クラスの ページャ(APIView): DEF(セルフ、要求、* GET引数、** kwargsから): #は得るすべてのデータ RET = models.Book.objects.all() #ページは、オブジェクトを作成する ページ= PageNumberPagination() #をページングされたデータpaginate_queryset方法自体を取得/データベースに持って、直接呼び出さ page_list page.paginate_queryset =(RET、リクエスト、ビュー= 自己) #のシリアライズページング のSer = BookSerializer1(= page_listインスタンスは、多くの= true)を 返すレスポンス(ser.data) #8000 /ページャ/ページ= 2&サイズ= 3://127.0.0.1:?2つのカスタムHTTP = URL #の5つのまでのサイズ= 30、無効、 クラス:マイページ(PageNumberPagination) #のページを示してどのように多くの PAGE_SIZE = 2 #クエリのキー値を指定するクエリである page_query_param = 「ページ」#のカスタムパラメータを渡す/フロントコントロールキー値クエリのページサイズ=このようなディスプレイは、ディスプレイ9が示すどのように多くの9 page_size_query_paramを= ' サイズ' #の最大伝送100は、ディスプレイが10までであれば1つのデータ/最大表示ページ数、サイズを制御 MAX_PAGE_SIZE 5 =。クラス ポケットベル(APIView): DEF(セルフ、要求、* argsを、** GET kwargsから): #すべてのデータを取得します = RET models.Book.objects.all() #オブジェクトの作成]タブ ページ= マイページ() #は、データベース内のデータページ取得 page_list = page.paginate_querysetを(RET、リクエスト、ビュー= 自己) #をページングシリアライズさ SER = BookSerializer1(= page_listインスタンスは、多くの= TRUE) #の復帰応答(ser.data) #これはリターンResponseオブジェクトであるが、基本的な前、次、およびデータの総数(理解する)以上 のリターン page.get_paginated_response(ser.data)
設定
= REST_FRAMEWORK { #2件 ' PAGE_SIZEを':2 }
二つオフセットタブ(N番目、N後方データビュー
#Http://127.0.0.1:8000/pager/?offset=4&limit=3 から rest_framework.pagination インポートLimitOffsetPaginationの #は、単純なページングで、カスタマイズすることができ 、クラスの ポケットベル(APIView): DEF(セルフ、要求、*引数をGET、 ** kwargsから): #得るすべてのデータ RET = models.Book.objects.all() #作成ページオブジェクトの ページ= LimitOffsetPagination() #は、データベースのデータにページングされます page_list = page.paginate_queryset(RET、リクエスト、表示= セルフ) #1 シリアライズページング SER = BookSerializer1を(= page_list例えば、MANY = TRUE) #page.get_paginated_responseリターン(ser.data) を返す応答(ser.data) 2つのカスタムURL = HTTP:8000 /ポケットベル/ページ= 2&サイズ= 3://127.0.0.1? #の5つのまで、サイズ= 30、無効を クラスマイページ(LimitOffsetPagination): #2を撮影したいくつかのデフォルトを取るために戻ってポールポジションから、私は指定することができます = 2 default_limitを#のすべての取得数 limit_query_param = 「リミット」#の#のベンチマーク値を、今これ、もし位置にシフト= 6部6には、撮影横、現在位置を示すオフセット offset_query_paramを= ' オフセット' #の最大つのデータ max_limitを5 = クラス ポケットベル(APIViewを): DEF(GETセルフ、リクエスト、引数*、** kwargsから): #は、すべてのデータを取得 RET = models.Book.objects.all() #は、ページがオブジェクトを作成し ます= マイページを() #は、データベースのデータにページングされます page_list = page.paginate_queryset(RET、リクエスト、ビュー= 自己) #シリアライズページング SER = BookSerializer1(= page_list例えば、MANY = TRUE) #の戻り応答(ser.data) #これは応答オブジェクトが返されるが、前、次よりも実質的に、全データストリップ数(理解する) リターン page.get_paginated_response(ser.data)
三CursorPagination(暗号化されたページのみ、以前と次を参照するには、速いです)
rest_framework.pagination インポートCursorPaginationの #がより大きい、SQLクエリを通じて、ソースを参照してください、とIDのID未満 クラス ポケットベル(APIView): DEF GET(セルフ、要求、* argsを、** kwargsから): #は、すべてのデータを取得 RET = models.Book .objects.all() #は、ページがオブジェクトを作成し ます= CursorPagination() #どのように page.ordering = ' NID ' #ページングデータを取得するために、データベース内の page_list = page.paginate_queryset(RET、リクエスト、ビュー= 自己) #のをタブシリアル化された SER = BookSerializer1(例えば= page_list、多くの=TRUE) #の回避ページ推測 リターンpage.get_paginated_response(ser.data) #あなたが最初に継承されたCursorPaginationをカスタマイズしたい場合は、次の3つのパラメータを書き換える #1 ページあたりのサイズ表示を = 3 page.page_size #クエリのキー値 = page.cursor_query_param 「カーソル」#どのように page.ordering = 「上記のID 」