Ключевое слово
with connection.cursor() as cursor:
cursor.execute(query)
with
означает, что вы используете менеджер контекста в Python, в конце этого блока connection.__exit__
вызывается без вывода сообщений и соединение закрывается.Аналогично в начале блока выполняется connection.__enter__
.
Чтобы ответить на ваш вопрос, да, вы открываете и закрываете соединение для каждого запроса в query_list
.Если вы хотите избежать перестановки цикла и менеджера контекста, как:
with connection.cursor() as cursor:
for query in query_list:
cursor.execute(query)