Skip to main content

db-mysql

介绍

这是一个简单的操作mysql数据库的库(底层是基于pymysql,只是做了生成sql和执行的简单功能)。是我在项目中无法使用ORM框架(SQLAlchemy)时候为了不重复写sql语句,并且为了项目后期表变动好修改才自己写了这个操作类。(由于数据库的表过多,并且表结构也不是我设计的,最重要的是不涉及复杂的sql操作,例如left join等,为了方便自己开发才有了这个)

优点:

不用重复编写CRUD的sql语句

缺点

暂时只支持单表的简单CRUD

说明

使用方法也非常简单,通过复制源码到项目,然后进行导包使用,或者是通过pip安装后import使用。

导包的方法如下

>>> from db_mysql import DB
>>> DB
<class 'db_mysql.DB'>

PS:不断更新中,有错误欢迎指出

具体使用方法

把数据库基础信息字典传入操作类,进行实例化

rpa_db_info = {
    'host': '192.168.0.191',
    'user': 'root',
    'password': '123456',
    'database': 'rpamakebill',
    'port': '3306'
}
# 实例化db对象 默认自动提 auto_commit=True
db = DB(rpa_db_info)

一些方便的方法

# 获取一个表的所有列
db.cols("test")

查询语句

select(self, table_name, select_cols, where_cols=None, where_vals=None, where_signs=None,
order_dict=None, limit=None, show_sql=False)
# 说明
select(表名, 需要查询的列名, 过滤的列名, 过滤的列名对应的值, 过滤的符号, 排序的字典, limit限制数量,是否打印生成的SQL)
# 返回值
字段列表,查询到的二维列表,前面二者合起来的字典列表 = db.select(表名, 需要查询的列名)
# 注意-select和delete以及update同下面说明
where_cols 和 where_vals 和 where_signs 需要搭配使用
where_signs 不写 默认都是 "="

具体使用:

# 简单的查询
cols, vals, datas = db.select("test", db.cols("test"))
# 当然还可以直接这样
datas = db.select("test", db.cols("test"))[2]
# 查询test表里面ID为100的数据
cols, vals, datas = db.select("test", db.cols("test"), ["ID"], [100])
# 查询test表里面ID为100,并且Name为“wrallen”的数据
cols, vals, datas = db.select("test", db.cols("test"), ["ID", "Name"], [100, "wrallen"])
# 按照更新时间递减,添加时间递增
order_dict = {
    "DateTime": "DESC",
    "AddTime": "ASC"
}
cols, vals, datas = db.select("test", db.cols("test"), ["ID", "Name"], [100, "wrallen"], order_dict)
# 查询test表里面ID小于100的数据
cols, vals, datas = db.select("test", db.cols("test"), ["ID"], [100], ["<"])
# 查询test表里面的ID和Name的默认排序的前10条
cols, vals, datas = db.select("test", ["ID", "Name"], limit=10)

添加语句

insert(self, table_name, insert_dict, show_sql=False)
# 说明
insert(表名, 插入的数据-字典, 是否打印生成的SQL)
# 返回值
插入成功的ID = db.insert(表名, 插入的数据-字典)

具体使用

insert_sql = {
    "Name": "bill"
}
new_id = db.insert("test", insert_sql)

删除语句

delete(self, table_name, where_cols=None, where_vals=None, where_signs=None, show_sql=False)
# 说明
delete(表名, 过滤的列名, 过滤的列名对应的值, 过滤的符号, 是否打印生成的SQL)
# 返回值-True, 删除失败会报异常

具体使用

# 删除test表里面ID为1的数据
db.delete("test", ["ID"], [1])
# 删除test表里面ID小于等于1的数据
db.delete("test", ["ID"], [1], ["<="])

更新语句

update(self, table_name, update_dict, where_cols=None, where_vals=None, where_signs=None, show_sql=False)
# 说明
update(表名, 更新的字典, 过滤的列名, 过滤的列名对应的值, 过滤的符号, 是否打印生成的SQL)
# 返回值-True, 更新失败会报异常

具体使用

# 更新test表里面ID为1的Name为bill
update_dict = {
    "Name": "bill"
}
db.update("test", update_dict, ["ID"], [1])

Metadata

Release files for db-mysql 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for db-mysql 0.1.2
File Size Uploaded
db-mysql-0.1.2.tar.gz 6.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for db-mysql 0.1.2
File Interpreter ABI Platform
db_mysql-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 13.1 kB

Release files / db-mysql-0.1.2.tar.gz

Download URL db-mysql-0.1.2.tar.gz
Size 6.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b640a3b8344118296170a5bd7a2912426fe8b9e09d72175ae4bb4e83cc3194d7
BLAKE2b-256 checksum
How to use checksums
9c5fea0b247919514d76516fefdb30563177853070e1e0d1ed3abf52e03e73d7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.7.3

Release files / db_mysql-0.1.2-py3-none-any.whl

Download URL db_mysql-0.1.2-py3-none-any.whl
Size 6.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4ee32b5ae0d1d2735d1f55053b18c98673868da5fc945cd31be65c80c3321738
BLAKE2b-256 checksum
How to use checksums
40c2e333d2ea09b1708db556959ef6f21489f57d75c2a3d21803ea885a915fb5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page