S.U.Connectior

s-connector的Python项目详细描述


S U连接器

对于python代码,使用connector to db非常简单。
支持数据库引擎:mysql和redshift amazon

说明

它是在python中简单连接到db的包装器。

依赖关系

  • python>;=3.7或更多(可能在python 2.x上工作,但我没有测试它)。
  • PyYAML或更多(文件设置需要)
  • psycopg2连接到redshift amazon db的模块
  • mysqlclient连接mysql数据库的模块
  • s\u记录器简单记录器模块的实现

安装前

在安装mysqlclient之前,需要执行一些额外的步骤:

  • sudo apt-get install python3-dev default-libmysqlclient-devdebian/ubuntu
  • sudo yum install python3-devel mysql-devel红帽/centos
  • brew install mysql-connector-cMacOS(自制)(目前,它有缺陷。见下文)

打开文件:/usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config-而不是x.x.x数量mysql-connector-c 版本

查找后续行

# on macOS, on or about line 112:
# Create options
libs="-L$pkglibdir"
libs="$libs -l "

更改为

# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

但是,在开始更改此文件之前,需要添加写入权限:

chmod 0666 /usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config

更改后需要恢复访问:

chmod 0555 /usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config

如何使用

文件main.py有一个小例子。

  • 需要安装模块:pip安装S_连接器
  • 创建'db_credential.yaml',其中包含带有连接凭据的文件的路径。见 格式below
  • 使用连接凭据创建文件。请参见格式below文件名credential.yaml
  • 在您的代码中需要使用import fro importing模块
from s_connector.S_Connector import MySQLConnector

或/和

froms_connector.SConnectorimportRedshiftConnector
  • 创建类s\u logger的对象并为其指定设置文件名
connector=RedshiftConnector('redshift_credential')# 'redshift_credential' - name of group for Redshift Amaon credential

或/和

connector=MySQLConnector('mysql_credential')# 'mysql_credential' - name og group for MySql credential

我们可以使用open方法建立连接,使用close方法关闭连接

connector.open()res=connector.select('SELECT 1;')print(res[0][0])connector.close()

使用上下文管理器:

withMySQLConnector('mysql_credential')asconnector:res=connector.select('SELECT 1;')print(res[0][0])

示例:

froms_connector.SConnectorimportMySQLConnectorfroms_connector.SConnectorimportRedshiftConnectorif__name__=='__main__':connector=RedshiftConnector('redshift_credential')connector.open()print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))connector.close()withRedshiftConnector('redshift_credential')asconnector:print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))connector=MySQLConnector('mysql_credential')connector.open()print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))connector.close()withMySQLConnector('mysql_credential')asconnector:print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))

格式化数据库凭证。yaml:

path_to_cred: credential.yaml

格式化凭证。yaml:

important此文件需要移动到受保护的位置。

redshift_credential:            # connection name
    host: redshift.data.db.test # or IP
    port: 5432
    database: test
    user: user_db
    passcode: somepwd

mysql_credential:               # connection name
    host: mysql.data.db.test    # or IP
    port: 3306
    database: test_db
    user: user_db
    passcode: somepwd

当前版本:1.0.2

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应