【Flask项目2】python对象分页数据序列化基类(5)
生活随笔
收集整理的這篇文章主要介紹了
【Flask项目2】python对象分页数据序列化基类(5)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
comment—utils—serializer.py文件
class BasePaginateSerializer(object):"""分頁(yè)數(shù)據(jù)序列化基類"""def __init__(self, paginate): #簡(jiǎn)化代碼,可以滿足對(duì)象的拷貝self.pg = paginateif not self.pg:return paginateself.has_next = self.pg.has_next # 是否還有下一頁(yè)self.has_prev = self.pg.has_prev # 是否還有前一頁(yè)self.next_num = self.pg.next_num # 下一頁(yè)的頁(yè)碼self.page = self.pg.page # 當(dāng)前頁(yè)的頁(yè)碼self.pages = self.pg.pages # 匹配的元素在當(dāng)前配置一共有多少頁(yè)self.total = self.pg.total # 匹配的元素總數(shù)self.page_size = self.pg.page_size #一頁(yè)最多顯示多少條數(shù)據(jù)def get_object(self, obj):"""對(duì)象的內(nèi)容,系列化的個(gè)性操作,子類重寫"""return {}#def paginateInfo(self):"""分頁(yè)信息,是否有上下頁(yè),頁(yè)數(shù),總頁(yè)數(shù)等"""return {'has_next': self.has_next,'has_prev': self.has_prev,'next_num': self.next_num,'page': self.page,'pages': self.pages,'total': self.total,'page_size': self.page_size}def to_dict(self):"""序列化分頁(yè)數(shù)據(jù)"""pg_info = self.paginateInfo()paginate_data = []for obj in self.pg.items:paginate_data.append(self.get_object(obj))return {'paginateInfo': pg_info, #分頁(yè)對(duì)象本身'totalElements': pg_info['total'], #總記錄數(shù)'content': paginate_data #當(dāng)前一頁(yè)所需要展示的數(shù)據(jù)列表}class BaseSerializer(object):'''把python對(duì)象轉(zhuǎn)化為字典'''def __init__(self, data):self.data = datadef to_dict(self):# 個(gè)性化的函數(shù)需要子類重寫return {}class BaseListSerializer(object):"""對(duì)象組序列化基類"""def __init__(self, data):self.data_list = data# self.select_type_serializer()def select_type_serializer(self):if not self.data_list:return Noneif isinstance(self.data_list, list): # 列表解析if len(self.data_list) == 0:return Noneelse:self.data_list = [dict(zip(result.keys(), result)) for result in self.data_list]def to_dict(self):"""個(gè)性化的系列化,子類重寫 """return {} 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的【Flask项目2】python对象分页数据序列化基类(5)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flask项目2】创建模型类映射到数据
- 下一篇: unittest单元测试框架—基本实例