繁体   English   中英

用于create_engine()的密码斜杠的SQLAlchemy ValueError

[英]SQLAlchemy ValueError for slash in password for create_engine()

相当简单的问题:我的Python脚本试图创建一个SQLAlchemy数据库连接。 密码包含正斜杠:

engineString = 'postgresql://wberg:pass/word@localhost/mydatabase'
engine = sqlalchemy.create_engine(engineString)

但第二行提出:

ValueError: invalid literal for int() with base 10: 'pass'

使用原始字符串(前缀为'r')没有用。 有没有办法让SQLAlchemy接受该密码? 我通常的下一步是尝试使用从属方法构建连接,但我看不到在doc中建立连接的另一种方法。 我不允许在这里使用带斜线的密码吗? 我可以容纳这一点,但似乎不可能在没有该功能的情况下工具包可以实现这一目标。

版本: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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM