将未打开的数据库连接存储在 Python 变量中


我在想出

如何搜索这个时遇到了麻烦,所以如果答案已经存在,请指出我正确的方向,我很乐意删除它。

我的 Python 代码中有这个

db = pg_driver.connect(user     = DB_NAME,
                       password = DB_WORD,
                       host     = DB_HOST,
                       port     = DB_PORT
)

这一切都完美无缺。我很好奇是否可以将其放入全局文件中,然后执行以下操作:

db = global.db
# OR something like this, where the () says to actually do the opening.
db = global.db()

然后,只有本地db将具有打开的连接,但global.db只会保留我通常打开数据库的方式。这个想法是,我不会有四行,而只有一行,如果我更改了连接到数据库的方式,我可以一次更新所有内容,而不必更新多个内容。

但是,我不希望global.db保持永远打开的数据库连接,因为这可能会导致更新问题。此外,我永远无法在需要时使用打开和关闭数据库的良好做法。如果我保持我的代码如图所示,并调用db.close()那么global.db也会被关闭,并且对于脚本中的任何其他用途都无用。

理想情况下,这将使用宏来完成,但 Python 没有我所理解的那些。

谢谢。

global.py 中,创建一个partial对象。

import functools
db = functools.partial(pg_driver.connect,
                       user=DB_NAME,
                       password=DB_WORD,
                       host=DB_HOST,
                       port=DB_PORT)

然后,db是一个可调用的对象,可以随心所欲地使用。

import global
db = global.db()

相关内容

  • 没有找到相关文章

最新更新