curd -- 简单增删改查模块

curd 模块源代码在文件 applications/common/curd.py 下,主要集结了一些简单实用的增删改查。

class curd.LogicalDeleteMixin

逻辑删除混入类,为模型提供软删除功能。

示例:

class Test(db.Model, LogicalDeleteMixin):
    __tablename__ = 'admin_test'
    id = db.Column(db.Integer, primary_key=True, comment='角色ID')

# 软删除
Test.query.filter_by(id=1).soft_delete()

# 查询所有未删除的记录
Test.query.logic_all()

函数

curd.auto_model_jsonify(data, model: db.Model)

自动序列化模型数据为 JSON 格式,无需手动定义 Schema。

示例:

power_data = curd.auto_model_jsonify(model=Dept, data=dept)
参数:
  • data -- 需要序列化的 SQLAlchemy 查询结果。

  • model -- SQLAlchemy 模型类。

返回:

返回序列化后的 JSON 数据。

curd.model_to_dicts(schema: ma.Schema, data)

使用指定的 Schema 序列化 SQLAlchemy 查询结果。

参数:
  • schema -- Marshmallow Schema 类。

  • data -- SQLAlchemy 查询结果。

返回:

返回序列化后的数据,返回字典。

curd.get_one_by_id(model: db.Model, id)

根据 ID 查询单个记录。

参数:
  • model -- SQLAlchemy 模型类。

  • id -- 记录的主键 ID。

返回:

返回查询到的记录,如果未找到则返回 None。

curd.delete_one_by_id(model: db.Model, id)

根据 ID 删除单个记录。

参数:
  • model -- SQLAlchemy 模型类。

  • id -- 记录的主键 ID。

返回:

返回删除操作影响的行数。

curd.enable_status(model: db.Model, id)

启用指定 ID 的记录。

参数:
  • model -- SQLAlchemy 模型类。

  • id -- 记录的主键 ID。

返回:

如果操作成功返回 True,否则返回 False。

curd.disable_status(model: db.Model, id)

停用指定 ID 的记录。

参数:
  • model -- SQLAlchemy 模型类。

  • id -- 记录的主键 ID。

返回:

如果操作成功返回 True,否则返回 False。