如何在查询执行期间发生错误时自动关闭 python 中的 MySQL 连接?
How to auto close a MySQL connection in python when an error occurred during query execution?
我正在研究 Python-3.7 和 Django 1.11。我正在使用 mysqlclient==1.4.2.post1 Python 包进行 MySQL 连接。
我想在发生任何错误或出现值错误时自动关闭我的 MySQL 连接,即使连接应该自动关闭。
conn = Database.connect_dbs()
with conn.cursor() as cursor:
qry = "Select FirstName from User where username = %s and isDeleted = 0;"
cursor.execute(qry, [username])
userDetail = cursor.fetchone()
if userDetail is None:
result.set_display_message_code('122')
result.set_status_code(200)
raise ValueError(
json.dumps(result.toJson(), cls=ComplexEncoder)
)
cursor.close()
conn.close()
因为我共享了一个代码,该代码在关闭游标和连接之前引发了一个值错误。我想确保在出现值错误时连接和游标应该自动关闭。
我看到的一些答案说 "With" 会自动关闭光标,但有些人否认。
我们将不胜感激任何形式的帮助。提前致谢。
为什么不把它包裹在 try: finally:
块中呢?
Defining Clean-up Actions (try-finally)
这就是 finally 块的用途。
我正在研究 Python-3.7 和 Django 1.11。我正在使用 mysqlclient==1.4.2.post1 Python 包进行 MySQL 连接。
我想在发生任何错误或出现值错误时自动关闭我的 MySQL 连接,即使连接应该自动关闭。
conn = Database.connect_dbs()
with conn.cursor() as cursor:
qry = "Select FirstName from User where username = %s and isDeleted = 0;"
cursor.execute(qry, [username])
userDetail = cursor.fetchone()
if userDetail is None:
result.set_display_message_code('122')
result.set_status_code(200)
raise ValueError(
json.dumps(result.toJson(), cls=ComplexEncoder)
)
cursor.close()
conn.close()
因为我共享了一个代码,该代码在关闭游标和连接之前引发了一个值错误。我想确保在出现值错误时连接和游标应该自动关闭。
我看到的一些答案说 "With" 会自动关闭光标,但有些人否认。
我们将不胜感激任何形式的帮助。提前致谢。
为什么不把它包裹在 try: finally:
块中呢?
Defining Clean-up Actions (try-finally)
这就是 finally 块的用途。