我正在使用SQLalchemy开发Python项目,我想要一个整洁的连接字符串来访问我的数据库。例如:
engine = create_engine('postgresql://user:pass@host/database')
问题在于我的密码包含一系列特殊字符,当我尝试连接时,它们被解释为分隔符。
我意识到我可以使用 engine.URL.create()
,然后像这样传递我的凭据:
import sqlalchemy as sa
connection_url = sa.engine.URL.create(
drivername="postgresql",
username="user",
password="p@ss",
host="host",
database="database",
)
print(connection_url)
# postgresql://user:p%40ss@host/database
但如果可能的话,我更愿意使用连接字符串。
所以明确一下,是否可能编码我的连接字符串,或者连接字符串中的密码部分 - 以便可以正确解析?
engine.URL.create()
然后传递我的凭据”,未来的读者不应忽略这确实是创建连接URL的首选方法。 - Gord Thompson