文章内容

2019/3/4 17:37:46,作 者: 黄兵

MySQLdb 自动处理关闭连接

在数据库操作中,打开了数据库连接,一定要及时关闭。

如果不及时关闭,导致连接池用完,导致数据库连接失败。

所以在使用MySQLdb的时候,自动处理连接关闭很有必要。


下面是通用连接关闭的方式:

from contextlib import closing

with closing(Conn_Config().Conn_MySQL()) as conn_mysql:
    with closing(conn_mysql.cursor()) as cur:

首先是打开了数据库连接,下面一句是打开了游标。

关于with closing()的具体实现,代码如下:

from contextlib import contextmanager

@contextmanager
def closing(thing):
    try:
        yield thing
    finally:
        thing.close()

可以看到实现的方法,其实也就是一个上下文管理。

无论是否有异常,最后都会关闭上下文。

用在数据库上下文,同时也会自动处理关闭连接的任务。


参考资料:28.7. contextlib — Utilities for with-statement contexts

分享到:

发表评论

评论列表