在flask开发运维后台的时候, 比较多的需求是, 从数据库取得结果, 需要序列化之后传递给前端的表格插件.
下面我们创建一个基类, 在定义model的时候, 继承就可以达到想要的结果了
|
|
在model定义时, 可以选指定在子类中指定需要序列化的字段public 或者 exculde 指定需要排除的字段, 注意当model中定义了外键的时候,稍后在做解释.
|
|
当然也可以不用指定public. 这样就会序列化Test 的全部的表字段, 下面做一些测试
测试2中情况:
- 指定public 字段 或者 指定exclude 字段;
- 什么都不指定, 在查询的时候, 才指定
- 下面是指定了public 字段时的结果, exclude 就不在演示了
|
|
- 当不指定时, 修改之前定义的model. 去掉 public
|
|
重新测试, 同样会遍历出所有字段
|
|
我们在查询的时候, 也可以指定排除的字段exclude, 或者仅包含指定的字段only
|
|
当然可以根据自己的需求, 去修改序列化的基类. 上面定义的基类, 在逻辑判断中没有考虑指定多个条件时的情况, 所以根据自己的需求, 自己修改;
题外话, 当我们model中有定义外键的时候, 那序列化的字段, 就会变成引用表的id值(通常是这样的)
|
|
而处理的方式就在上面, 直接或者引用表的的’_get_public’方法, 而当没有定义的时候, 在就取默认值了