Skip to main content

一个基于pymysql的操作mysql的简易框架

Project description

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])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

db-mysql-0.1.2.tar.gz (6.2 kB view hashes)

Uploaded Source

Built Distribution

db_mysql-0.1.2-py3-none-any.whl (6.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page