Skip to main content

No project description provided

Project description

dbinterface

Build Status Coverage Status

Python 连接数据库,执行读写操作的通用接口,采用简单工厂模式,基于接口和组合进行编程。

安装

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.4.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

dbinterface-0.4-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file dbinterface-0.4.tar.gz.

File metadata

  • Download URL: dbinterface-0.4.tar.gz
  • Upload date:
  • Size: 11.6 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.4.tar.gz
Algorithm Hash digest
SHA256 fc5ba9ad3cde0a771eff46be375fd704c277a2426c2f4ce33b261087c6753be8
MD5 6c904223ad6daf8b73f9745faaaa0816
BLAKE2b-256 00b85a327cb61e56650652e49495f389f7f0fb4327af2d2cfb24b654364d14e4

See more details on using hashes here.

File details

Details for the file dbinterface-0.4-py3-none-any.whl.

File metadata

  • Download URL: dbinterface-0.4-py3-none-any.whl
  • Upload date:
  • Size: 19.7 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 02b60aa1184aa27fdffd22e68b4360517e9f3cb7c0a01410647c4bcadc379cd3
MD5 e7950af75a5b2f4c5c736ed0f3c6e928
BLAKE2b-256 3d3d29d078d2655330e9fd2a57da1493fe180317c60266b09d4f68a886e97972

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