django连接和游标

连接游标主要实现 PEP 249中描述的Python DB API标准——除非它涉及到事务处理

如果你不熟悉Python DB-API,注意cursor.execute()中的SQL语句使用占位符"%s",而不是直接在SQL中添加参数。如果你使用这种方法,底层数据库的库会在必要时自动转义你的参数。

还要注意Django 使用"%s"占位符,而不是 SQLite Python 使用的"?"占位符。这是一致性和可用性的缘故。

Changed in Django 1.7.

PEP 249并没有说明游标是否可以作为上下文管理器使用。在Python 2.7之前,由于魔术方法查询(Python ticket #9220)中的一个意想不到的行为,游标可以用作上下文管理器。Django 1.7 明确添加允许使用游标作为上下文管理器的支持。

将游标作为上下文管理器使用:

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

等价于:

c = connection.cursor()
try:
    c.execute(...)
finally:
    c.close()

posted on 2017-12-26 16:39  ExplorerMan  阅读(268)  评论(0编辑  收藏  举报

导航