>$ pip install sqlalchemy
Можете использовать SQLAlchemy на нескольких уровнях.
• На самом низком уровне она работает с пулами соединений к базе данных, выполняет команды SQL и возвращает результат. Этот уровень очень похож на DB-API.
• Следующий уровень — язык выражений SQL, построитель SQL в Python.
• Самый высокий уровень — это слой ORM (Object Relational Model, объектно-реляционное отображение), который использует язык выражений SQL Expression 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 |
mysql | pymysql |
mysql | oursql |
postgresql | psycopg2 |
postgresql | pypostgresql |
Уровень движка
Сначала мы попробуем поработать с самым низким уровнем SQLAlchemy, возможности которого почти не отличаются от функций DB-API.
Попробуем поработать с SQLite, поскольку его поддержка уже встроена в Python. Строка соединения для SQLite опускает значения параметров host, port, user и password. dbname информирует SQLite о том, какой файл использовать для хранения вашей базы данных. Если вы опустите параметр dbname, SQLite создаст базу данных в памяти. Если значение параметра dbname начинается со слеша (/), оно является абсолютным именем файла на вашем компьютере (как в Linux и OS X). В противном случае оно является относительным именем текущего каталога.
Следующие сегменты являются частью одной программы, разделенной на части для удобства объяснения.
Для начала нужно импортировать все, что нам понадобится. Следующая строка является примером импортирования псевдонима, который позволяет использовать строку sa для того, чтобы ссылаться на методы SQLAlchemy. Я делаю это в основном потому, что sa написать гораздо проще, чем sqlalchemy: