Время от времени я выполняю необработанные запросы, используя connection.cursor()
вместо использования ORM (так как это определенно не серебряная пуля).
Я заметил, что в нескольких местах я не называю явным cursor.close()
после того, как я закончил работу с базой данных. Пока это не приводит к ошибкам или проблемам с производительностью. Мне интересно, какие проблемы я мог бы иметь, не закрывая курсор явно, что может пойти не так?
Насколько я понимаю, connection
и cursor
в Django следуют "Спецификации API базы данных Python v2.0" (PEP-249). И, согласно ему, cursor
будет автоматически закрываться всякий раз, когда вызывается метод __del__()
. Я думаю, вопрос может быть также: есть ли прецедент, когда он не называется?
FYI, я использую Python 2.7 и Django 1.6.5.