Шаг 216.
Основы языка Python. Доступ к базам данных MySQL. Библиотека MySQLClient. Обработка результата запроса

    На этом шаге мы рассмотрим конструкции, используемые для обработки результатов запроса.

    Для обработки результата запроса применяются следующие методы курсора MySQLdb.cursors.Cursor:

    Объект-курсор поддерживает итерационный протокол, поэтому можно перебрать записи с помощью цикла for, указав объект-курсор в качестве параметра:

>>> sql = "SELECT `name_city` FROM `city` WHERE `id_city`>4"
>>> cur.execute (sql)
3
>>> for row in cur: print (row[0])

Пермь
Самара
Омск

    Все рассмотренные методы после возвращения результата перемещают указатель текущей позиции. Если необходимо вернуться в начало или переместить указатель к произвольной записи, следует воспользоваться методом scroll(<Смещение>, <Точка отсчета>). Во втором параметре могут быть указаны значения:

    Если указанное смещение выходит за диапазон, возбуждается исключение IndexError. Для примера переместим указатель в начало, выведем все записи, а затем вернемся на одну запись назад:

>>> cur.scroll (0, "absolute")
>>> res = cur.fetchall ()
>>> for name in res: print (name[0])

Пермь
Самара
Омск
>>> cur.scroll (-1, "relative")
>>> res = cur.fetchall ()
>>> for name in res: print (name[0])

Омск

    Все рассмотренные методы возвращают запись в виде кортежа. Если необходимо изменить такое поведение и получить записи в виде словаря, то следует воспользоваться курсором MySQLdb.cursors.DictCursor. Этот курсор аналогичен курсору MySQLdb.cursors.Cursor, но возвращает записи в виде словаря, а не кортежа. Для примера выведем запись с идентификатором 5 в виде словаря:

>>> con = MySQLdb.connect (host="localhost", user="root", charset="utf8", 
    db="python")
>>> cur = con.cursor (MySQLdb.cursors.DictCursor)
>>> sql = "SELECT * FROM `city` WHERE `id_city`=5"
>>> cur.execute (sql)
1
>>> cur.fetchone()
{'name_city': 'Пермь', 'id_city': 5}

    Со следующего шага мы начнем рассматривать библиотеку PyODBC.




Предыдущий шаг Содержание Следующий шаг