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

标签 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”会自动关闭光标,但有些人否认。

我们将不胜感激任何形式的帮助。提前致谢。

最佳答案

为什么不把它包装在 try:finally: block 中呢?

Defining Clean-up Actions (try-finally)

这就是 finally block 的用途。

关于mysql - 如何在查询执行期间发生错误时自动关闭 python 中的 MySQL 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56747554/

相关文章:

python - 超出语言工作线程重新启动运行时重试计数 :python. 关闭并主动回收 - Azure 函数应用程序

python - from_formula() 缺少 2 个必需的位置参数 : 'formula' and 'data'

php - 使用 PDO 将全局语言写入 MySQL

mysql - 返回日期时间列介于用户输入的日期、小时和分钟组合之间的数据

MySQL查询以选择至少包含一定数量元素的组

c# - 如果发生错误,using 语句是否会回滚数据库事务?

django-templates - LogoutView 中的模板名称不适用于 django2.1 python3.7

mysql范围查询性能

php - PHP 的 mysql 扩展是否不支持 "FOR UPDATE"的事务?

node.js - RethinkDB 对多个文档/表的事务处理