我想记录数据库连接,但不想显示密码(或驱动程序/方言)。
有没有办法从 SQLAlchemy 中得到这个,或者我应该求助于正则表达式解析? SQLAlchemy 应该已经解析它来找出这一点,所以我自己这样做似乎很愚蠢,但我在 http://docs.sqlalchemy.org/en/latest/core/connections.html 或 上找不到任何内容http://docs.sqlalchemy.org/en/latest/core/engines.html
谢谢!
注意: 从 SQLAlchemy 2.0 开始,密码默认是隐藏的。请参阅
URL.render_as_string(hide_password: bool = True)
。
URL.__repr__
方法隐藏密码:
from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:tiger@localhost/test')
assert repr(engine.url) == 'postgresql://scott:***@localhost/test'
如果你想隐藏驱动程序/方言,你可能希望看看URL类是如何计算字符串的
URL.__to_string__
。
使用
repr(engine)
将包含类名称。要仅获取 URL 表示,请执行以下操作:
from sqlalchemy import create_engine
engine = create_engine('postgresql://scott:tiger@localhost/test')
assert repr(engine.url) == 'postgresql://scott:***@localhost/test'
(注意
.url
是唯一的补充)