【发布时间】:2013-07-21 03:45:22
【问题描述】:
我遇到了非常奇怪的问题 - 我使用 sqlalchemy 的解决方案无法连接到数据库。这取决于我使用的密码。例如,以下记录运行良好:
PWD='123123123'
USR='test_user';
SQLALCHEMY_DATABASE_URI = 'mysql://{}:{}@localhost:3306/test_db'.format(USR, PWD)
#final result is 'mysql://test_user:123123123@localhost:3306/test_db'.format(USR, PWD)
但是当我尝试输入一些严重的密码时(例如'8yq+aB&k$V'),连接失败。如何以某种方式“转义”或编码密码以使 sqlalchemy 成功地将其传递给 mysql?
【问题讨论】:
-
SQLALCHEMY_DATABASE_URI 中包含的结果字符串是什么?
-
@Simonatmso.net 不太确定是否理解您的问题。 MySQL (SQLALCHEMY_DATABASE_URI) 的连接字符串的语法是已知的,并在 sqlalchemy 文档中进行了描述。我只是想拆分信息。所以,代替第一个花括号用户将被替换和密码 - 而不是第二个。
-
无论如何,更新代码块。
-
这就是我要问的 - 使用更安全的密码,生成的字符串是否按预期结束? (
print SQLALCHEMY_DATABASE_URI输出什么?)。如果按预期输出,那么 SQLAlchemy 正在做的事情一定会导致密码中的一个字符出现问题(再次假设,我会查看&或+) -
mysql://test_user:8yq+aB&k$V@localhost:3306/test_db- 我查过了。我还怀疑问题是&符号或其他非字母数字用法。但希望有人遇到同样的问题。真难过。
标签: python mysql sqlalchemy