如何从 SQLAlchemy 引擎实例获取连接 URL?

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

我通过生成一个

URL
对象并将其传递给
create_engine
来开始一个程序。在一段很远很远的代码中,我想找出这个引擎连接到什么,即连接 URL。

有没有简单的方法可以做到这一点?使用

inspect
我只能看到如何获取驱动程序类型。我可以理解连接字符串的密码组件是否不再可用,但我希望其他所有内容仍然可用。

有什么想法吗?

sqlalchemy connection-string
3个回答
9
投票

这对我来说非常有效:

    log.info("* Using DB: %s" % (engine.url))

9
投票

Engine类有一个属性

url
。虽然没有记录,但它不是“隐藏下划线”,所以我认为可以安全阅读。


0
投票

文档随着时间的推移而改进:https://docs.sqlalchemy.org/en/20/core/engines.html#sqlalchemy.engine.URL

数据库 url (

dialect+driver://username:password@host:port/database
) 可以通过
render_as_string(hide_password: bool = True)
作为字符串查看,这也使您可以控制是否以纯文本形式显示密码。默认情况下,类
__repr__
会调用
return self.render_as_string()
,因此会屏蔽密码。

如果您想要方言或其组件,您可以调用 get_dialectget_backend_name,即 + 的左侧,以及 get_driver_name,即右侧。

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