如何在查询执行期间发生错误时自动关闭 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 块的用途。