Необходим pg_config
из клиентских инстру-
ментов PostgreSQL
py-postgresql http://python.projects.
py-postgresql postgresql
—
pgfoundry.org/
SQLAlchemy
SQL не во всех реляционных базах данных одинаков, и DB-API дает вам ограни-
ченный набор возможностей. Каждая база данных реализует определенный диа-
лект, отражая свои особенности и философию. Многие библиотеки пытаются тем
или иным способом компенсировать эти различия. Самая популярная библиотека
для работы с разными базами данных — SQLAlchemy (http://www.sqlalchemy.org/).
238
Глава 8. Данные должны куда-то попадать
Эта библиотека не является стандартной, но она широко известна и использу-
ется многими людьми. Вы можете установить ее в свою систему с помощью следу-
ющей команды:
$ pip install sqlalchemy
Можете использовать SQLAlchemy на нескольких уровнях.
На самом низком уровне она работает с пулами соединений к базе данных, вы-
полняет команды SQL и возвращает результат. Этот уровень очень похож на
DB-API.
Следующий уровень — язык выражений SQL, построитель SQL в Python.
Самый высокий уровень — это слой ORM (Object Relational Model, объектно-
реляционное отображение), который использует язык выражений SQL Expres-
sion Language и связывает код приложения с реляционными структурами
данных.
По мере углубления в материал вы поймете, что означают эти термины. SQLAlchemy
работает с драйверами базы данных, задокументированными в предыдущих раз-
делах. Вам не нужно импортировать драйвер — он будет определен с помощью
строки соединения, которую вы предоставляете SQLAlchemy. Эта строка выглядит
примерно так:
dialect + driver :// user : password @ host : port / dbname
В эту строку нужно поместить следующие значения:
dialect — тип базы данных;
driver — драйвер, который вы хотите использовать для этой базы данных;
user и password — строки аутентификации для этой базы данных;
host и port — расположение сервера базы данных (значение port нужно указывать
только в том случае, если вы используете нестандартный порт);
dbname — имя базы данных, к которой нужно подключиться.
В табл. 8.5 перечислены диалекты и драйверы.
Таблица 8.5. Соединение с SQLAlchemy
Диалект
Драйвер
sqlite
pysqlite (можно опустить)
mysql
mysqlconnector