1 Star 3 Fork 0

编程Thinker / sqlalchemy-tool

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

sqlalchemy-tool

介绍

Sqlalchemy是Python中常见的ORM操作工具,本项目封装了Sqlalchemy的部分操作,完成了常见的数据库操作,已经实现的接口有:

  • 插入
  • 批量插入
  • 保存(如果条件查询的存在,则更新;如果不存在,则添加)
  • 批量保存(如果id查询的存在,则更新;如果不存在,则添加)
  • 修改(可根据条件修改)
  • 批量修改(根据id修改)
  • 查询单条(通过条件查询)
  • 查询单条数据组成dict(通过条件查询)
  • 通过id查询单条
  • 查询所有(通过条件查询)
  • 通过id列表查询
  • 分页查询(通过条件查询)
  • 查询条数(通过条件查询)
  • 删除(通过条件删除)
  • 通过id列表删除

项目结构

项目结构说明 sqlalchemy_tool下存放了自定义个工具类:

  • meta_class.py:文件中定义了ModelMetaClass类,该类是一个元类,现有以下功能:
    • 给Model实例添加__column_dict__字段, 该字段存储了字段名和字段Column类型的字典集;
    • 校验Model类定义时,类名是否首字母大写,是否有文档注释,如果没有,会抛出异常,创建Model实例失败;
  • model.py: 文件中自定义了一个继承了Sqlalchemy的BaseModel类,用户使用时,可以继承该Model类,代替使用继承Base
    • Model类中定义了实例objects属性,该实例属性可以实现类似django的数据操作时的管理器功能
    • Model类中定义了类方法objects_(),该类方法可以实现类似django的数据操作时的管理器功能
  • transcation_decorator.py: 文件中定义一个Transcation类,该类用于作为事务注解使用,可以实现自动提交、异常自动回滚;
  • model_utils.py:文件中定义了定义了Model实例转字典、Model实例列表转字典列表、Model实例转Json字符串、Model实例列表转Json字符串;
  • manager.py:文件中定义了一个Manager类,该类主要用于数据库操作,增、删、改、查等功能的接口都是在这个类中定义的,使用Model实例的实例objects属性或类方法objects_()都是获取该Manager的实例,有类该实例,Model类可以直接操作数据库;
  • base_crdu.py:文件中定义了一个BaseCrdu类,该类主要是调用Manager类进行数据操作,基本上是完全封装了Manager类的接口
  • config.py:该类是一个配置类,现有的只有一个配置项Base,主要用于导入Sqlalchemy的Base

安装教程

现在项目还没有部署到pypi平台,如果要在项目中使用,可以按照如下流程:

  1. 执行命令pip install -r requirements.txt ,可以导入需要的库SQLAlchemy和PyMySQL;
  2. 拷贝sqlalchemy_tool目录下到你的项目中;
  3. 修改sqlalchemy_tool目录下config.py文件中配置项Base的导入;

使用说明

  1. 拷贝sqlalchemy_tool目录下到你的项目中
  2. 修改sqlalchemy_tool目录下config.py文件中配置项Base的导入,如这里导入的是example/database.py中配置的Base
  3. 编写基础自Model类的model类,基本用法和Sqlalchemy的定义一样,只是改继承Base为继承Model类, 可以参考example/models.py中的示例
  4. 如果要自定义数据操作接口,可以创建继承自BaseCrdu的类,可以参考example/crdu.py中的示例
  5. 具体操作接口的使用,可以参考test/test_crdu.py和test/test_manager.py文件中的测试示例

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码
  4. 新建 Pull Request

特技

  1. 使用 Readme_XXX.md 来支持不同的语言,例如 Readme_en.md, Readme_zh.md
  2. Gitee 官方博客 blog.gitee.com
  3. 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
  4. GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
  5. Gitee 官方提供的使用手册 https://gitee.com/help
  6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/

空文件

简介

Sqlalchemy操作工具,本工具封装了使用Sqlalchemy进行数据库的常见操作,如:插入、批量插入、保存(如果条件查询的存在,则更新;如果不存在,则添加)、批量保存(如果id查询的存在,则更新;如果不存在,则添加)、修改(可根据条件修改) 批量修改(根据id修改)、查询单条(通过条件查询)、查询单条数据组成dict(通过条件查询)、通过id查询单条、查询所有(通过条件查询)、通过id列表查 展开 收起
Python
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Python
1
https://gitee.com/code-thinker/sqlalchemy-tool.git
git@gitee.com:code-thinker/sqlalchemy-tool.git
code-thinker
sqlalchemy-tool
sqlalchemy-tool
master

搜索帮助