python - connection.cursor() 作为游标会创建新连接吗?

标签 python django python-3.x database

如果在 Django 中执行以下操作,是否会为每次查询执行创建一个新的连接对象?

for query in query_list:
    with connection.cursor() as cursor:
        cursor.execute(query)

最佳答案

with connection.cursor() as cursor:
    cursor.execute(query)

with 关键字意味着您正在使用 Python 中的上下文管理器,在此 block 的末尾 connection.__exit__ 被静默调用并关闭连接。同样,在 block 的开头执行 connection.__enter__

要回答您的问题,是的,您正在为 query_list 中的每个查询打开和关闭连接。如果你想避免置换循环和上下文管理器,如:

with connection.cursor() as cursor:
    for query in query_list:
        cursor.execute(query)

关于python - connection.cursor() 作为游标会创建新连接吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56038193/

相关文章:

python - 如何确定 Python sqlite UPDATE 是否有效?

mysql - Django save() 不起作用

在 Django 中设置分页时出现 Python 类型错误

python - 无法加载包含转义序列的 json

python用整数替换列表中的字符串

python - ThreadPoolExecutor 未定义 [python3]

python - functools.wraps的 `assigned`和 `updated`参数如何使用?

python - 如何通过 XPath 选择最后一个 p 元素之前的所有元素?

python - djangorest_framework自定义异常错误

javascript - Django 和 Ajax - 提交表单集