diff options
Diffstat (limited to 'docs/topics')
| -rw-r--r-- | docs/topics/db/sql.txt | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/topics/db/sql.txt b/docs/topics/db/sql.txt index 7437d51d28..1369ed84f5 100644 --- a/docs/topics/db/sql.txt +++ b/docs/topics/db/sql.txt @@ -297,3 +297,30 @@ database library will automatically escape your parameters as necessary. Also note that Django expects the ``"%s"`` placeholder, *not* the ``"?"`` placeholder, which is used by the SQLite Python bindings. This is for the sake of consistency and sanity. + +.. versionchanged:: 1.7 + +:pep:`249` does not state whether a cursor should be usable as a context +manager. Prior to Python 2.7, a cursor was usable as a context manager due +an unexpected behavior in magic method lookups (`Python ticket #9220`_). +Django 1.7 explicitly added support to allow using a cursor as context +manager. + +.. _`Python ticket #9220`: http://bugs.python.org/issue9220 + +Using a cursor as a context manager: + +.. code-block:: python + + with connection.cursor() as c: + c.execute(...) + +is equivalent to: + +.. code-block:: python + + c = connection.cursor() + try: + c.execute(...) + finally: + c.close()
\ No newline at end of file |
