Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 180

condition

<= 10 OR id = 16

DB-API

Программный интерфейс приложения (Application Programming Interface, API) —

это набор функций, которые вы можете вызвать, чтобы получить доступ к какой-

либо услуге. DB-API (http://bit.ly/db-api) — это стандартный API в Python, предна-

значенный для получения доступа к реляционным базам данных. С его помощью вы

можете написать одну программу, которая работает с несколькими видами реляци-

онных баз данных, вместо того чтобы писать несколько программ для работы с каж-

дым видом баз данных по отдельности. Этот API похож на JDBC в Java или dbi в Perl.

Рассмотрим его основные функции.

 connect() — создание соединения с базой данных. Этот вызов может включать

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

 cursor() — создание объекта курсора, предназначенного для работы с запросами.

 execute() и executemany() — запуск одной или более команд SQL.

 fetchone(), fetchmany() и fetchall() — получение результатов работы функции

execute.

Модули работы с базами данных в Python, которые будут рассмотрены в сле-

дующих разделах, соответствуют DB-API, часто имея некоторые расширения или

разницу в деталях.

SQLite

SQLite (http://www.sqlite.org/) — это хорошая легковесная реляционная база дан-

ных с открытым исходным кодом. Она реализована как стандартная библиотека

Python и хранит базы данных в обычных файлах. Эти файлы можно переносить

Реляционные базы данных

235

на другие машины и в операционные системы, что делает SQLite очень портатив-

ным решением для создания простых реляционных баз данных. У нее не так мно-

го возможностей, как у MySQL или PostgreSQL, но она поддерживает SQL и по-

зволяет нескольким пользователям работать с ней одновременно. Браузеры,

смартфоны и другие операционные системы используют SQLite как встроенную

базу данных.

Работа с базой данных начинается с вызова connect() для установки соединения

с локальным файлом базы данных, который вы хотите создать или использовать.

Этот файл эквивалентен похожей на каталог базе данных, которая хранит таб лицы

на других серверах. С помощью специальной строки ':memory:' можно создать базу

данных только в памяти — это быстро и полезно для тестирования, но данные будут

потеряны при завершении программы или выключении компьютера.

Для следующего примера создадим базу данных enterprise.db и таблицу zoo,

чтобы управлять нашим увлекательным бизнесом по содержанию придорожного

контактного зоопарка. В таблице будут содержаться следующие графы:

 critter — строка переменной длины, наш первичный ключ;

 count — целочисленное количество единиц используемого инвентаря для этого

животного;

 damages — количество долларов, потерянных из-за взаимодействий людей с жи-

вотными:

>>> import sqlite3

>>> conn = sqlite3.connect('enterprise.db')

>>> curs = conn.cursor()

>>> curs.execute('''CREATE TABLE zoo