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

psycopg2

Необходим 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