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 = 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(表名, 需要查询的列名)
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]
cols, vals, datas = db.select("test", db.cols("test"), ["ID"], [100])
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)
cols, vals, datas = db.select("test", db.cols("test"), ["ID"], [100], ["<"])
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)
具体使用
db.delete("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)
具体使用
update_dict = {
"Name": "bill"
}
db.update("test", update_dict, ["ID"], [1])