Psycopg2 - 使用连接字符串连接到 postgreSQL 数据库
Psycopg2 - Connect to postgreSQL database using a connection string
我目前的连接字符串格式为:
"localhost://用户名:密码@data_quality:5432"
使用它通过 psycopg2 连接到我的数据库的最佳方法是什么?
例如:
连接 = psycopg2.connect(connection_string)
谢谢,
您可以使用 urlparse
,创建一个与 psycopg 的连接参数相匹配的字典:
import psycopg2
from urllib.parse import urlparse
conStr = "localhost://username:password@data_quality:5432"
p = urlparse(conStr)
pg_connection_dict = {
'dbname': p.hostname,
'user': p.username,
'password': p.password,
'port': p.port,
'host': p.scheme
}
print(pg_connection_dict)
con = psycopg2.connect(**pg_connection_dict)
print(con)
输出:
{'dbname': 'data_quality', 'user': 'username', 'password': 'password', 'port': 5432, 'host': 'localhost'}
<connection object at 0x105f58190; dsn: 'user=xxx password=xxx dbname=xxx host=xxx port=xxx', closed: 0>
pyscopg2 connect
的文档是 here。按照他们的语法,您可以这样连接:
connection = psycopg2.connect(host='localhost', user='<username>',
password='<password>',
dbname='data_quality', port=5432)
如果您使用的是 Windows,如果您没有网络连接,解析 localhost
可能会很愚蠢。您可以通过使用 '127.0.0.1'
代替 host
来解决这个问题
我目前的连接字符串格式为:
"localhost://用户名:密码@data_quality:5432"
使用它通过 psycopg2 连接到我的数据库的最佳方法是什么?
例如: 连接 = psycopg2.connect(connection_string)
谢谢,
您可以使用 urlparse
,创建一个与 psycopg 的连接参数相匹配的字典:
import psycopg2
from urllib.parse import urlparse
conStr = "localhost://username:password@data_quality:5432"
p = urlparse(conStr)
pg_connection_dict = {
'dbname': p.hostname,
'user': p.username,
'password': p.password,
'port': p.port,
'host': p.scheme
}
print(pg_connection_dict)
con = psycopg2.connect(**pg_connection_dict)
print(con)
输出:
{'dbname': 'data_quality', 'user': 'username', 'password': 'password', 'port': 5432, 'host': 'localhost'}
<connection object at 0x105f58190; dsn: 'user=xxx password=xxx dbname=xxx host=xxx port=xxx', closed: 0>
pyscopg2 connect
的文档是 here。按照他们的语法,您可以这样连接:
connection = psycopg2.connect(host='localhost', user='<username>',
password='<password>',
dbname='data_quality', port=5432)
如果您使用的是 Windows,如果您没有网络连接,解析 localhost
可能会很愚蠢。您可以通过使用 '127.0.0.1'
代替 host