Skip to main content

数据库连接信息管理

Project description

dbcfg

项目目的

把数据库连接信息独立出来,放在一个专用的配置目录下。可以提供以下好处:

  • 代码中不再包含连接信息,方便做到开发和运维分离。
  • 代码中没有连接信息,也提高了安全性,避免不小心分发出去的代码泄露了秘密。
  • 后续数据库变换地址、连接方式、修改密码不再需要调整源代码,直接修改配置即可。
  • 同一份源代码,无须变动,即可适应生产、测试环境。
  • 数据库定期修改密码时,仅需要改动少量配置文件。

一些特性

  • 支持不同的语言,初期支持python、c、lua等

快速入门

安装

使用

pip install dbcfg

即可下载安装

python使用方法

import dbcfg
dbc=dbcfg.use("xxx")
print(dbc.dbtype)       #输出数据库类型,如mysql
db=dbc.connect()        #返回数据库连接

设计思路

在特定目录下依次寻找数据文件。每个设置一个文件,类似oa.cfg这样,以.cfg结尾,使用时去掉.cfg的部分做为连接名使用。

数据目录在linux平台下搜索顺序是:

  • ~/.dbcfg.d
  • /etc/dbcfg.d

在windows平台下搜索顺序是:

  • 当前盘:/etc/dbcfg.d
  • c:/etc/dbcfg.d

设置文件里指定连接何种数据库,以及连接数据所需要的一些信息(不同数据库不相同)。

提供各语言的库,可以读取配置文件,甚至直接根据连接名和配置文件连接数据库。

数据文件格式

以json格式存放信息。样例如下:

[
    {
        "name":"一个配置文件里可以设置多个连接,用名字区分,只有一个连接时,可以忽略名字"
        "db":"如tds 指定数据库类型",
        "python":{
            "import":"python需要导入的包名",
        },
        "lua":{
            "require":"导入的模块名称",
        },
        "t":"连接串内容,根据数据库类型确定,如果t不设置,则使用d中的内容。使用t或者d,根据数据库等情况确定",
        "d":{
            "server":"服务器地址",
            "database":"库名称",
            "user":"如sa 用户名称",
            "password":"对应的密码",
            "port":1433,
            "readonly":true
        }
    }
]

示例是一个tds(mssql)的配置示例。

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

dbcfg-0.0.2.tar.gz (8.0 kB view details)

Uploaded Source

File details

Details for the file dbcfg-0.0.2.tar.gz.

File metadata

  • Download URL: dbcfg-0.0.2.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for dbcfg-0.0.2.tar.gz
Algorithm Hash digest
SHA256 871ed4332462a744f31e82c4bb3f116a4bc6840fa20998f66ad063974bbaffa9
MD5 e67626053ce62a4734f221a978c4d011
BLAKE2b-256 ced5b5894555cb2be67da85b55c96cfa9cef86f915aca0e148db628618cf2090

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