静止フレームワークフィニッシャー

単純なページ(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 
        
        

 

おすすめ

転載: www.cnblogs.com/HUIWANG/p/11138878.html