当密码包含特殊字符时编写连接字符串。

17 浏览
0 Comments

当密码包含特殊字符时编写连接字符串。

我正在一个Python项目中使用SQLalchemy,并且希望有一个简洁的连接字符串来访问我的数据库。例如:

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

但如果可能的话,我更愿意使用连接字符串。

所以明确一下,有没有可能对我的连接字符串进行编码,或者对连接字符串的密码部分进行编码,以便能够正确解析?

0