1. 程式人生 > >django rest framework 自定義分頁返回資訊

django rest framework 自定義分頁返回資訊

這一章給大家講解如何自定義分頁的返回資訊


#settings.conf 
REST_FRAMEWORK = {
    'DEFAULT_PAGINATION_CLASS': 'common.utils.custom_pagination.LargeResultsSetPagination',
    'PAGE_SIZE': 20, #可選可不選,如果在此處填寫,則優先順序大於自定義裡面的page
}

2、編寫自定義返回分頁資訊指令碼

from rest_framework.pagination import PageNumberPagination,LimitOffsetPagination 
from
collections import OrderedDict from rest_framework.response import Response class LargeResultsSetPagination(LimitOffsetPagination): page_size = 10 page_size_query_param = 'page_size' max_page_size = 10000 def get_paginated_response(self, data): code = 200 msg = 'success'
if not data: code = 404 msg = "data not found" return Response(OrderedDict([ ('code',code), ('msg', msg), ('count', self.count), ('next', self.get_next_link()), ('previous', self.get_previous_link(
)), ('data', data), ]))

這樣當我們資料多的時候就會就會進行分頁提示

{
    "code": 200,
    "msg": "success",
    "count": 5,
    "next": null,
    "previous": null,
    "data": [
        {
            "id": 9,
            "hostname": "sj-jn-27-221.103.134",
            "type": 2,
            "vendor": "2",
            "ip": "12.12.12.38",
            "status": 0,
            "create_time": "2018-11-16T16:51:23.238087+08:00",
            "update_time": "2018-11-16T16:51:23.238109+08:00"
        },
        {
            "id": 7,
            "hostname": "sj-jn-27-221.103.133",
            "type": 1,
            "vendor": "2",
            "ip": "12.12.12.37",
            "status": 0,
            "create_time": "2018-11-16T16:50:54.632770+08:00",
            "update_time": "2018-11-16T16:50:54.632827+08:00"
        },
        {
            "id": 5,
            "hostname": "sj-jn-27-221.103.132",
            "type": 0,
            "vendor": "2",
            "ip": "12.12.12.36",
            "status": 0,
            "create_time": "2018-11-16T16:49:04.951364+08:00",
            "update_time": "2018-11-16T16:49:04.951419+08:00"
        },
        {
            "id": 3,
            "hostname": "sj-jn-27-221.103.131",
            "type": 0,
            "vendor": "2",
            "ip": "12.12.12.35",
            "status": 0,
            "create_time": "2018-11-16T16:46:44.996822+08:00",
            "update_time": "2018-11-16T16:46:44.996845+08:00"
        },
        {
            "id": 1,
            "hostname": "sj-jn-27-221.103.130",
            "type": 0,
            "vendor": "19",
            "ip": "12.12.12.34",
            "status": 0,
            "create_time": "2018-11-16T16:45:30.665053+08:00",
            "update_time": "2018-11-16T16:45:30.665087+08:00"
        }
    ]
}

相關推薦

django rest framework 定義返回資訊

這一章給大家講解如何自定義分頁的返回資訊 #settings.conf REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'common.utils.custom_pagination.LargeResu

Django rest framework 定義Exception

return cep 格式 message throttle back per ack logs   使用Dango rest framework時,有時需要raise APIException到前端,為了統一錯誤返回格式,我們需要對exception的格式進行調整。 方法

python-django rest framework框架之

link 自己實現 -i man model 三種 imp *** efault 1. 以前django做的分頁組件當數據量特別大的時候,性能不是很高,有以下三種方式處理: a. 記錄當前訪問頁的最後一條數據id,往後取多少條 b. 最多顯示1

Django學習手冊 - 定義工具

inf img 返回 app image splay mage turn bubuko 前端代碼: <div class="xianshi"> {% for i in info %} <ul>

django rest framework 過濾 lim

一.過濾 1.首先引用diango 自帶的過濾配置 2.匯入模組 from django_filters.rest_framework import DjangoFilterBackend from django_filters import rest_framework as filters

基於Django的python定義模組化實現

1、目的&環境準備    目的:把分頁用模組方式實現,然後在需要分頁的地方直接呼叫模組。    環境準備:建立一個Django專案,並從中生成一個App,註冊之後配置urls&Models。    配置Urlsfrom django.conf.urls imp

django 1.11 定義功能的實現

在WEB中很多時候是免不了要分頁的,如果我們的資料太多了,分出來6000多頁或者更多的時候,用django自帶的分頁功能就不好看了,所以我們來自定義一下。我是參考http://www.cnblogs.com/nulige/p/6558207.html這篇文章的,不過如果照著

Python之路65-Django定義

python目錄一、XSS二、分頁1三、分頁2四、分頁3一、XSS有下面一段代碼,想將這段代碼中的字符串渲染到HTML頁面中,默認Django是不能這樣去操作的views.pydef user_list(request): page_str = """ <a href="/use

Django定義

plugin style 定義 mage user_list .sh render 進行 blog 應用於各頁面中的分頁實現,實現的結果如下圖 1.先自定義一個有關分頁的PageInfo類 1 class PageInfo(object): 2 3

Django-定義

isa 變量 range 代碼 imp lencod django mat 多少 封裝好的自定義分頁器 class Page(): def __init__(self, page_num, total_count, base_url, params, per_pa

DJANGO 定義組件

ret ref 前端 nav exce open 分享圖片 pro paginati 第一次在碼雲上面分享代碼片段,記錄一下: https://gitee.com/trunkslisa/codes/14gkxi3zf9e2ulbvjnqyo90 clas

Django學習手冊 - 初識定義

request shortcut ren 字符 span turn 翻頁 info char 核心: <a href=‘http://127.0.0.1:8000/index-%s‘>%s<a> 自定義分頁 1.前端處理字符   後端的字符

Django器及定義

info tar trap 當前頁 quest res error: 封裝 HERE Django的分頁器 view from django.shortcuts import render,HttpResponse # Create your views here. f

Django - - 進階 - - Cookie、Session和定義

目錄 cookie Django中操作Cookie Session Django中Session相關方法 分頁 1,cookie 1.1 Cookie的由來 HTTP協議是無狀態的。 無狀態的意思是每次請求都是獨立的,它的執行情況和結果與前面的請求和之後的請求都無直

18 Django - 定義、FBV和CBV

Django - 自定義分頁、FBV和CBV     一、自定義分頁(優勢在於能夠儲存搜尋條件)   """ 分頁元件使用示例: 1) 先取出所有資料USER_LIST 2) 例項化:

django 定義功能

django自帶的分頁功能有侷限性,只能顯示所有頁碼,不能顯示當前頁的前五和後五頁的頁碼。所有需要自己寫。 from django.shortcuts import render from app01.models import User class MyPaginator: def

Django框架學習筆記(19.定義

在講自定義分頁之前,先講一個簡單的。 在模板語言中還有一些特殊的存在,比如這個: def tpl4(request): name = "asdf123456" return render(request, 'tpl4.html', {'name': name})

django 定義與bootstrap結合

django中有自帶的分頁模組Paginator,想Paginator提供物件的列表,就可以提供每一頁上物件的方法。 這裡的話不講解Paginator,而是自定義一個分頁類來完成需求: class Pagination(object): """用於Model欄位值的

Django定義,實現paginator缺失的功能

有不少初學Django的朋友經常抱怨,在網上搜了一大堆教程,各種自定也分頁的方法對新手一點都不友好,很難看懂。那今天我來寫一個相對容易看懂的教程吧。 django內建paginator分頁器雖然用起來是很簡單,但是功能也很簡單。一旦資料多起來,就會把頁

Django 定義

為什麼要實現分頁?   在大部分網站中分頁的功能都是必要的,尤其是在後臺管理中分頁更是不可或缺 分頁能帶給使用者更好的體驗,也能減輕伺服器的壓力 對於分頁來說,有許多方法都可以實現 例如把資料全部讀取出來在前端用javascript實現,但這樣一次請求全部資料伺服器壓力很大, 還有就是在後