superset 细思极恐的代码

  1. json.dumps()的default参数
def json_dumps(self, obj, sort_keys=False):
    ignore_nan=False if self.form_data.get('all_columns') else True
    return json.dumps(
            obj,
            default=utils.json_iso_dttm_ser, # 对时间类型的数据进行处理
            ignore_nan=True,
            sort_keys=sort_keys,
            )

一般default参数很少使用,default参数的作用是对不能直接序列化的类型进行操作

  1. 自动添加权限
sqla.event.listen(Database, 'after_insert', set_perm)
sqla.event.listen(Database, 'after_update', set_perm)

def set_perm(mapper, connection, target):  # noqa

    if target.perm != target.get_perm():
        link_table = target.__table__
        connection.execute(
            link_table.update()
            .where(link_table.c.id == target.id)
            .values(perm=target.get_perm()),
        )

    # add to view menu if not already exists
    merge_perm(security_manager, 'datasource_access', target.get_perm(), connection)

猜你喜欢

转载自blog.csdn.net/python_tty/article/details/80970405