如果我在Python SQLite中不关闭数据库连接会怎么样?
- 论坛
- 如果我在Python SQLite中不关闭数据库连接会怎么样?
14 浏览
如果我在Python SQLite中不关闭数据库连接会怎么样?
我正在做类似以下的事情...
conn = sqlite3.connect(db_filename) with conn: cur = conn.cursor() cur.execute( ... )
with
会自动提交更改。但文档中没有提到关闭连接。
实际上,我可以在后面的语句中使用 conn
(我已经测试过)。因此,上下文管理器似乎没有关闭连接。
我是否需要手动关闭连接?如果我将其保持打开会怎样?
编辑
我的发现:
- 上下文管理器中没有关闭连接,我已经测试并确认。在
__exit__
中,上下文管理器只是通过执行conn.commit()
来提交更改 with conn
和with sqlite3.connect(db_filename) as conn
是一样的,所以使用其中任何一个都会保持连接的活动状态with
语句不会创建新的作用域,因此在 with 语句块中创建的所有变量都可以在外部访问- 最后,你应该手动关闭连接