如果在 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/