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 {}

【Flask项目2】python对象分页数据序列化基类(5)相关推荐

  1. baseresponse响应类_内部类、响应类Response、序列化基类、反序列化、全局局部钩子...

    一.内部类 1.概念:将类定义在一个类的内部,被定义的类就是内部类 2.特点:内部类及内部类的所以名称空间,可以直接被外部类访问的 3. 应用:通过内部类的名称空间,给外部类额外拓展一些特殊的属性(配 ...

  2. python abc模块_3-2 抽象基类abc模块

    abc ---- Abstract base class 何为抽象基类: 类比JAVA: 可以当作是JAVA中的接口,在JAVA里面它是无法实现多继承的,JAVA只能继承一个类,但是JAVA可以继承多 ...

  3. BIM工程信息管理系统-EF实体框架数据操作基类

    EF实体框架数据操作基类主要是规范增.改.查.分页.Lambda表达式条件处理,以及异步操作等特性,这样能够尽可能的符合基类这个特殊类的定义,实现功能接口的最大化重用和统一. 1.程序代码 /// & ...

  4. mysql的数据层基类_C# 基于MySQL的数据层基类(MySQLHelper)

    using System; using System.Data; using MySql.Data; using MySql.Data.MySqlClient; namespace DBUtility ...

  5. 一个具有对象计数功能的基类

    参考<<More Effective C++>>一书中的条款26:"限制某个class所能产生的对象数量",参照"一个用来计算对象个数的基类&qu ...

  6. python 元类的call_【原创】Python 对象创建过程中元类, __new__, __call__, __init__ 的处理...

    原始type: type是最原始的元类,其__call__方法是在你使用" t_class = type(classname_string, base_classes_tuple, attr ...

  7. EF实体框架数据操作基类(转)

    //---------------------------------------------------------------- // Copyright (C) 2013 河南禄恒软件科技有限公 ...

  8. python设计tcp数据包协议类

    一.问题描述 在tcp编程中,最需要解决的就是粘包分包问题.所以,我们需要在每个数据包前面加上数据包的长度用以分割粘连的包. 二.包结构的设计 包的组成:包长度+数据域 包长度:用4个字节存储数据域长 ...

  9. 第八周项目二-用对象数组操作长方柱类

    /* *Copyright(c)2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:123.cpp *作 者:王蕊 *完成日期:2016年4月19日 *版 本 ...

最新文章

  1. Ubuntu 16.04下用Wine运行的软件出现方块的解决思路(应该是兼容现在所有平台的Wine碰到这个的问题)...
  2. Mysql Errcode: 24 - Too many open files
  3. TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)
  4. Java笔记-获取自己资源文件中的配置文件(打包成jar包为其他包所引用也能获取)
  5. 黑鲨或将在明天公布黑鲨4系列游戏手机
  6. 【数据结构上机练习】考试题目 3
  7. Spring 2.5 jar 所有开发包及完整文档及项目开发实例
  8. wpf程序运行时停止工作,事件管理器报错lci_proxyumd32.dll
  9. 技术员 Ghost Win 7 Sp1(X86/X64)旗舰加强版201804
  10. 安装axure插件以便打开原型文件
  11. 分数的表示、化简以及输出
  12. RTA PAVIA CSD ET04-1 ET04
  13. Maven Compile 编译报错
  14. 2018年列车已到站,请您下车
  15. 达梦数据库逻辑备份(dexp/dimp)
  16. PAT乙级 | 1094 谷歌的招聘 (20分)
  17. React报错:Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until y
  18. 简述网桥的特点_网桥的工作原理和特点
  19. golang读写文件的几种方式
  20. scratch实现猫捉老鼠(下)

热门文章

  1. element ui表格点击整行选择_element-ui实现动态表头的表格问题汇总
  2. java dictionary 实例化_Java Dictionary put()用法及代码示例
  3. 轻松智能的数据中心冷却节能方法
  4. 电脑显示器变色_两千元档超强电竞小金刚:180hz的泰坦军团T27QR显示器
  5. 成功解决The NVIDIA driver on your system is too old (found version 9010). Please update your GPU driver
  6. DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)
  7. DL之DNN:自定义MultiLayerNet【6*100+ReLU,SGD】对MNIST数据集训练进而比较【多个超参数组合最优化】性能
  8. ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略
  9. 成功解决from nets import inception_resnet_v2 ModuleNotFoundError: No module named 'nets'
  10. AI:人工智能概念之机器学习中常用算法的思维导图集合(非常经典、建议收藏)之详细攻略