No project description provided
Project description
dbinterface
Python 连接数据库,执行读写操作的通用接口,采用简单工厂模式,基于接口和组合进行编程。
安装
git clone https://github.com/somenzz/dbinterface.git
pip install -r requirements.txt
pip install dbinterface
使用方法
读取数据
from dbinterface.database_client import DataBaseClientFactory
client1 = DataBaseClientFactory.create(
dbtype="postgres",
host="localhost",
port=5432,
user="postgres",
pwd="121113",
database="postgres",
)
result1 = client1.read("select current_date")
for row in result1:
#do something
pass
client = DataBaseClientFactory.create(
dbtype="mysql",
host="localhost",
port=3306,
user="aaron",
pwd="aaron",
database="information_schema",
)
result2 = client.read("select current_date()")
for row in result2:
#do something
pass
更新数据
from dbinterface.database_client import DataBaseClientFactory
client1 = DataBaseClientFactory.create(
dbtype="postgres",
host="localhost",
port=5432,
user="postgres",
pwd="121113",
database="postgres",
)
rows_affeted = client1.write(
"insert into tmp_test_table values(%s, %s)", ("1", "aaron")
)
assert rows_affeted == 1
导出数据
from dbinterface.database_client import DataBaseClientFactory
client = DataBaseClientFactory.create(
dbtype="postgres",
host="localhost",
port=5432,
user="postgres",
pwd="121113",
database="postgres",
)
rows_export = client.export(
"select * from information_schema.TABLES",
params=(),
file_path="/Users/aaron/tmp/mysql_tables.txt",
delimeter="0x02",
quote="0x03",
all_col_as_str=False,
)
assert rows_export > 0
获取表名列表
from dbinterface.database_client import DataBaseClientFactory
client = DataBaseClientFactory.create(
dbtype="postgres",
host="localhost",
port=5432,
user="postgres",
pwd="121113",
database="postgres",
)
table_list = client.get_tables()
for table in table_list:
print(table['name'])
print(table['type'])
print(table['schema'])
print(table['remarks'])
扩展
-
修改 database_interface.py 文件,添加新的函数
-
添加新的数据库,以 oracle 为例,在 dbinterface 目录下,新增 oracle_client.py 文件,参考其他 client 编写即可。
-
然后修改 dbinterface 目录下 database_client.py 文件,修改 DataBaseClientFactory 类,添加对应的数据库类型。
-
tests 目录内添加单元测试,执行 pytess 测试
联系我
微信号 somenzz 公众号 「Python七号」
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
dbinterface-0.6.tar.gz
(11.2 kB
view details)
Built Distribution
dbinterface-0.6-py3-none-any.whl
(18.9 kB
view details)
File details
Details for the file dbinterface-0.6.tar.gz
.
File metadata
- Download URL: dbinterface-0.6.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 44fa8f2bd1ee0307913bf3aab44c1e1a433304fc3b64378bda7783428697b21d |
|
MD5 | 22f4297ec38a93a1fe59d55ace2965d5 |
|
BLAKE2b-256 | a455638c355de37cc7a652ea8ed53295391feaaadce47f0c440ba5a372f45b49 |
File details
Details for the file dbinterface-0.6-py3-none-any.whl
.
File metadata
- Download URL: dbinterface-0.6-py3-none-any.whl
- Upload date:
- Size: 18.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 62645c79eab2ed86a852bbc2570d06453f56ceca8ba7c8b7d87c71c255ab946f |
|
MD5 | 18df7888b1ec246268acb38b4594aaf3 |
|
BLAKE2b-256 | 58e8af0dbde42bab20bd24aad6d5ffecfffbadbedd5e28ad9a272e26185b40d9 |