使用的模块为psycopg2
安装方式:
pip3 install psycopg2-binary
模块测试
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import psycopg2
# PostgreSQL 数据入库模块 正确执行返回Y 否则返回N 增 / 删 / 改
def runDataInPostgreSQLDB(aHost, aPort, aDB, aUser, aPass, aSQL):
""" Connect to the PostgreSQL database server. insert/delete/update"""
conn = None
try:
print(' + Database connection START')
conn = psycopg2.connect(dbname = aDB, user = aUser, password = aPass, host = aHost, port = aPort)
cur = conn.cursor()
cur.execute(aSQL)
conn.commit()
cur.close()
return 'Y'
except (Exception, psycopg2.DatabaseError) as e:
print(e)
return 'N'
finally:
if conn is not None:
conn.close()
print(' + Database connection CLOSE')
# PostgreSQL 数据读取模块 正确返回数据列表 错误返回空列表
def runDataOutPostgreSQLDB(aHost, aPort, aDB, aUser, aPass, aSQL):
""" Connect to the PostgreSQL database server. select"""
conn = None
try:
print(' + Database connection START')
conn = psycopg2.connect(dbname = aDB, user = aUser, password = aPass, host = aHost, port = aPort)
cur = conn.cursor()
cur.execute(aSQL)
data = cur.fetchall()
cur.close()
return data
except (Exception, psycopg2.DatabaseError) as e:
print(e)
return []
finally:
if conn is not None:
conn.close()
print(' + Database connection CLOSE')
aSQL = "select vtype,ip,port from mdata limit 3;"
vData = runDataOutPostgreSQLDB(aHost = '127.0.0.1', aPort = 5432, aDB = "你的数据库实例名称", aUser = "你的数据库用户名", aPass = "你的数据库密码", aSQL = "一个SQL")
print(vData)
// 测试结果
root@PostgreSQLDatabase:~/src/invoker# python3 tmp1058.py
+ Database connection START
+ Database connection CLOSE
[('socks4', '203.207.52.38', 5430), ('socks4', '103.146.170.244', 5678)]
root@PostgreSQLDatabase:~/src/invoker#
如果用命令行连接数据库 # psql -d 你的数据库实例名称 -h 127.0.0.1 -p 5432 -U 你的数据库用户名 -W
