Шаг 198.
Основы языка Python.
Доступ к базе данных SQLite из Python. Создание и открытие базы данных

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

    Для создания и открытия базы данных служит функция connect(). Функция имеет следующий формат:

  connect( database[, timeout][, isolation_level][, detect_types]
    [, factory] [, check_same_thread] [, cached_statements] [, uri = False] )

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

    Все остальные параметры не являются обязательными и могут быть указаны в произвольном порядке путем присвоения значения названию параметра. Так, параметр timeout задает время ожидания снятия блокировки с открываемой базы данных (по умолчанию - пять секунд). Предназначение остальных параметров мы рассмотрим позже.

    Функция connect() возвращает объект соединения, с помощью которого осуществляется вся дальнейшая работа с базой данных. Если открыть базу данных не удалось, то возбуждается исключение. Соединение закрывается, когда вызывается метод close() объекта соединения. В качестве примера откроем и сразу закроем базу данных testdb.db, расположенную в каталоге book на диске C:\:

>>> import sqlite3 # Подключаем модуль sqlite3
>>> con = sqlite3.connect ("C:\\book\\testdb.db") # Открываем базу данных
>>> # Работаем с базой данных
>>> con.close () # Закрываем базу данных

    Поддержка необязательного параметра uri появилась в Python 3.4. Если его значение равно True, путь к базе данных должен быть указан в виде интернет-адреса формата fiie:///<Путь к файлу>. В этом случае можно задать дополнительные параметры соединения с базой, перечислив их в конце интернет-адреса в виде пар <Имя параметра>=<Значение параметра> и отделив от собственно пути символом ?, а друг от друга - символом &. Наиболее интересные для нас параметры таковы:

    Примеры доступа к базе данных по интернет-адресу:

>>> import sqlite3
>>> # Доступ к базе, хранящейся в файле c:\book\testdb.db
>>> con = sqlite3.connect(r"file:///C:/book/testdb.db", uri = True)
>>> con.close()
>>> # Доступ только для чтения
>>> con = sqlite3.connect(r"file:///C:/book/testdb.db?mode=ro", uri = True)
>>> con.close()
>>> # Доступ к неизменяемой базе данных
>>> con = sqlite3.connect(r"file:///f:/data.db?immutable=1", uri = True)
>>> con.close()

    На следующем шаге мы рассмотрим выполнение запросов.




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