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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Uploaded Python 3

File details

Details for the file db-mysql-0.1.2.tar.gz.

File metadata

  • Download URL: db-mysql-0.1.2.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for db-mysql-0.1.2.tar.gz
Algorithm Hash digest
SHA256 b640a3b8344118296170a5bd7a2912426fe8b9e09d72175ae4bb4e83cc3194d7
MD5 6052d5b1084d2f4f3618a706bb22913f
BLAKE2b-256 9c5fea0b247919514d76516fefdb30563177853070e1e0d1ed3abf52e03e73d7

See more details on using hashes here.

File details

Details for the file db_mysql-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: db_mysql-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for db_mysql-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4ee32b5ae0d1d2735d1f55053b18c98673868da5fc945cd31be65c80c3321738
MD5 41a1e01eedf0cc832e4340a8324d09ab
BLAKE2b-256 40c2e333d2ea09b1708db556959ef6f21489f57d75c2a3d21803ea885a915fb5

See more details on using hashes here.

Supported by

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