gpt4 book ai didi

python关闭mysql数据库连接

转载 作者:行者123 更新时间:2023-11-29 02:25:27 38 4
gpt4 key购买 nike

我有一个使用 MySQL 数据库连接的 python 脚本,我希望在类的实例不再存在时关闭数据库连接,因此在我的类中我实现了一个断开方法,如下所示:

def disconnect(self):
'''Disconnect from the MySQL server'''
if self.conn is not None:
self.log.info('Closing connection')
self.conn.close()
self.conn = None
self.curs = None

现在我想按如下方式调用这个方法:

def __del__(self):
self.disconnect()

但是我读到您不能假设 __del__ 方法将永远被调用,如果是这样的话,正确的方法是什么?我应该在何处/何时调用 disconnect() 方法?

重要的旁注是我的脚本作为 unix 守护进程运行并实例化如下:

if __name__ == '__main__':
daemon = MyDaemon(PIDFILE)
daemonizer.daemonizerCLI(daemon, 'mydaemon', sys.argv[0], sys.argv[1], PIDFILE)

上面采用 MyDaemon 类并通过执行双叉创建一个 Unix 守护进程。

最佳答案

也许您可以使用 with 语句并填充 __exit__ 方法。例如:

class Foo(object):

def disconnect(self):
'''Disconnect from the MySQL server'''
if self.conn is not None:
self.log.info('Closing connection')
self.conn.close()
self.conn = None
self.curs = None
print "disconnect..."

def __exit__(self, *err):
self.disconnect()

if __name__ == '__main__':
with Foo() as foo:
print foo, foo.curs

关于python关闭mysql数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22936294/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com