當前位置:
首頁 >
【Flask项目2】python对象分页数据序列化基类(5)
發布時間:2025/3/21
25
豆豆
生活随笔
收集整理的這篇文章主要介紹了
【Flask项目2】python对象分页数据序列化基类(5)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
comment—utils—serializer.py文件
class BasePaginateSerializer(object):"""分頁數據序列化基類"""def __init__(self, paginate): #簡化代碼,可以滿足對象的拷貝self.pg = paginateif not self.pg:return paginateself.has_next = self.pg.has_next # 是否還有下一頁self.has_prev = self.pg.has_prev # 是否還有前一頁self.next_num = self.pg.next_num # 下一頁的頁碼self.page = self.pg.page # 當前頁的頁碼self.pages = self.pg.pages # 匹配的元素在當前配置一共有多少頁self.total = self.pg.total # 匹配的元素總數self.page_size = self.pg.page_size #一頁最多顯示多少條數據def get_object(self, obj):"""對象的內容,系列化的個性操作,子類重寫"""return {}#def paginateInfo(self):"""分頁信息,是否有上下頁,頁數,總頁數等"""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):"""序列化分頁數據"""pg_info = self.paginateInfo()paginate_data = []for obj in self.pg.items:paginate_data.append(self.get_object(obj))return {'paginateInfo': pg_info, #分頁對象本身'totalElements': pg_info['total'], #總記錄數'content': paginate_data #當前一頁所需要展示的數據列表}class BaseSerializer(object):'''把python對象轉化為字典'''def __init__(self, data):self.data = datadef to_dict(self):# 個性化的函數需要子類重寫return {}class BaseListSerializer(object):"""對象組序列化基類"""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):"""個性化的系列化,子類重寫 """return {} 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的【Flask项目2】python对象分页数据序列化基类(5)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flask项目2】创建模型类映射到数据
- 下一篇: python—unittest—数据驱动