Skip to main content

No project description provided

Project description

dbinterface

Build Status Coverage Status

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)

Uploaded Source

Built Distribution

dbinterface-0.6-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

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

Hashes for dbinterface-0.6.tar.gz
Algorithm Hash digest
SHA256 44fa8f2bd1ee0307913bf3aab44c1e1a433304fc3b64378bda7783428697b21d
MD5 22f4297ec38a93a1fe59d55ace2965d5
BLAKE2b-256 a455638c355de37cc7a652ea8ed53295391feaaadce47f0c440ba5a372f45b49

See more details on using hashes here.

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

Hashes for dbinterface-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 62645c79eab2ed86a852bbc2570d06453f56ceca8ba7c8b7d87c71c255ab946f
MD5 18df7888b1ec246268acb38b4594aaf3
BLAKE2b-256 58e8af0dbde42bab20bd24aad6d5ffecfffbadbedd5e28ad9a272e26185b40d9

See more details on using hashes here.

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