我正在使用SQLalchemy作为Python项目,我希望有一个整洁的连接字符串来访问我的数据库.例如:
engine = create_engine('postgres://user:pass@host/database')
Run Code Online (Sandbox Code Playgroud)
问题是我的密码包含一系列特殊字符,在我尝试连接时会被解释为分隔符.
我意识到我可以创建一个对象然后传递我的凭据,如下所示:
drivername = 'postgres',
username = 'user',
password = 'pass',
host = 'host',
database = 'database'
Run Code Online (Sandbox Code Playgroud)
但是如果可能的话,我宁愿使用连接字符串.
所以要清楚,是否可以编码我的连接字符串或连接字符串的密码部分 - 以便可以正确解析它?
相当简单的问题:我的 Python 脚本正在尝试创建 SQLAlchemy 数据库连接。密码包含一个正斜杠:
engineString = 'postgresql://wberg:pass/word@localhost/mydatabase'
engine = sqlalchemy.create_engine(engineString)
Run Code Online (Sandbox Code Playgroud)
但第二行提出:
ValueError: invalid literal for int() with base 10: 'pass'
Run Code Online (Sandbox Code Playgroud)
使用原始字符串(以 'r' 开头)无济于事。有什么方法可以让 SQLAlchemy 接受该密码?我通常的下一步是尝试使用从属方法构建连接,但我在文档中看不到另一种建立连接的方法。我只是不允许在这里使用斜杠的密码吗?我可以接受这一点,但如果没有该功能,该工具包似乎不太可能走到这一步。
版本:Python 2.6.6,SQLAlchemy 0.8.0