查询执行期间发生错误时,如何自动关闭python中的MySQL连接?

时间:2019-06-25 05:46:07

标签: mysql transactions python-3.7

我正在使用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”将自动关闭光标,但有人拒绝它。

任何帮助将不胜感激。预先感谢。

1 个答案:

答案 0 :(得分:1)

为什么不将其包装在try: finally:块中?

Defining Clean-up Actions (try-finally)

这就是最终的目的。