wil*_*erg 1 python sqlalchemy escaping
相当简单的问题:我的 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
斜线不是 URL 组件字符串的有效字符。您需要对连接字符串的密码部分进行 URL 编码:
from urllib import quote_plus as urlquote
from sqlalchemy.engine import create_engine
engineString = 'postgresql://wberg:%s@localhost/mydatabase' % urlquote('pass/word')
engine = create_engine(engineString)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3034 次 |
最近记录: |