有时候我会使用connection.cursor()
来执行原始查询,而不是使用ORM(因为ORM肯定不是万能解决方案)。
我注意到在几个地方,我没有在完成数据库查询后显式调用cursor.close()
。到目前为止,这还没有导致任何错误或性能问题。我想知道如果不显式关闭游标会出现什么问题,可能会出现哪些问题?
据我所知,Django中的connection
和cursor
遵循“Python数据库API规范v2.0”(PEP-249)。根据规范,在调用__del__()
方法时,cursor
将自动关闭。我猜问题也可以这样表述:是否存在未调用该方法的情况?
补充信息,我使用的是Python 2.7和Django 1.6.5。