最佳答案
我在 Python 项目中使用了 SQLlegy,我希望有一个整洁的连接字符串来访问我的数据库。例如:
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
但是如果可能的话,我更愿意使用连接字符串。
因此,为了清楚起见,是否有可能对我的连接字符串或连接字符串的密码部分进行编码,以便能够正确地解析它?