#3.4 如果有的介面需要顯示與其他介面數量不同的資料,該怎麼辦
python3.6
django==2.0.7
djangorestframework==3.8.2
from rest_framework.pagination import pagenumberpagination
from rest_framework.response import response
from collections import ordereddict
class mycustompagination(pagenumberpagination):
page_size = 5 # 每頁顯示多少個
page_size_query_param = "size" # 預設每頁顯示3個,可以通過傳入pager1/?page=2&size=4,改變預設每頁顯示的個數
max_page_size = 100 # 最大頁數不超過100
page_query_param = "page" # 獲取頁碼數的
def get_paginated_response(self, data):
"""輸出格式"""
return response(ordereddict([
('count', self.page.paginator.count), # 整個資料的個數
('success', true), # 驗證訊息
('results', data) # 當前頁的資料
]))
#3.3.1 沒有使用分頁
檢視
class get_view(mixins.createmodelmixin,
mixins.listmodelmixin,
genericviewset):
pagination_class = none # 沒有使用分頁(也可以注釋掉)
queryset = models.student.objects.all()
serializer_class = get_sreializer
介面資料
[,,
,,
......
...]
#3.3.2 使用分頁
檢視
class get_view(mixins.createmodelmixin,
mixins.listmodelmixin,
genericviewset):
pagination_class = mycustompagination # 使用剛剛自定義的分頁
queryset = models.student.objects.all()
serializer_class = get_sreializer
介面資料
,,,
,]
}
需求:
如何處理z介面
嘗試:
檢視
class mychildcustompagination(mycustompagination):
page_size = 1 # 每頁顯示多少個
class get_view(mixins.createmodelmixin,
mixins.listmodelmixin,
genericviewset):
pagination_class = mychildcustompagination # 子類
queryset = models.student.objects.all()
serializer_class = get_sreializer
介面資料
]}
ObjectDataSource自定義分頁
objectdatasource是唯一支援自定義分頁的資料來源,要實現分頁效果,首先要將objectdatasource.enablepageing屬性設為true,通過三個屬性實現 startrowindex,maximumrows和selectcountmethod,效果如圖 實現分頁有兩種情況...
ObjectDataSource自定義分頁
objectdatasource是唯一支援自定義分頁的資料來源,要實現分頁效果,首先要將objectdatasource.enablepageing屬性設為true,通過三個屬性實現 startrowindex,maximumrows和selectcountmethod,效果如圖 實現分頁有兩種情況...
自定義 如何自定義協議
何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...