有没有办法以日志合适的格式从sqlalchemy中获取连接字符串?

问题描述 投票:0回答:2

我想记录数据库连接,但不想显示密码(或驱动程序/方言)。

有没有办法从 SQLAlchemy 中得到这个,或者我应该求助于正则表达式解析? SQLAlchemy 应该已经解析它来找出这一点,所以我自己这样做似乎很愚蠢,但我在 http://docs.sqlalchemy.org/en/latest/core/connections.html 上找不到任何内容http://docs.sqlalchemy.org/en/latest/core/engines.html

谢谢!

python database sqlalchemy
2个回答
9
投票

注意: 从 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__


3
投票

使用

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
是唯一的补充)

© www.soinside.com 2019 - 2024. All rights reserved.