Читаем Простой Python полностью

ДиалектДрайвер
sqlitepysqlite (можно опустить)
mysqlmysqlconnector
mysqlpymysql
mysqloursql
postgresqlpsycopg2
postgresqlpypostgresql


Уровень движка

Сначала мы попробуем поработать с самым низким уровнем SQLAlchemy, возможности которого почти не отличаются от функций DB-API.

Попробуем поработать с SQLite, поскольку его поддержка уже встроена в Python. Строка соединения для SQLite опускает значения параметров host, port, user и password. dbname информирует SQLite о том, какой файл использовать для хранения вашей базы данных. Если вы опустите параметр dbname, SQLite создаст базу данных в памяти. Если значение параметра dbname начинается со слеша (/), оно является абсолютным именем файла на вашем компьютере (как в Linux и OS X). В противном случае оно является относительным именем текущего каталога.

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

Для начала нужно импортировать все, что нам понадобится. Следующая строка является примером импортирования псевдонима, который позволяет использовать строку sa для того, чтобы ссылаться на методы SQLAlchemy. Я делаю это в основном потому, что sa написать гораздо проще, чем sqlalchemy:

>>> import sqlalchemy as sa

Соединимся с базой данных и создадим хранилище в памяти (строка аргументов 'sqlite:///:memory: ' также сработает):

>>> conn = sa.create_engine('sqlite://')

Создадим таблицу, которая называется zoo и содержит три графы:

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

…·····(critter VARCHAR(20) PRIMARY KEY,

…······count INT,

…······damages FLOAT)''')

Вызов conn.execute() возвращает объект SQLAlchemy, который называется ResultProxy. Скоро вы увидите, что с ним можно сделать.

Кстати, если вы раньше никогда не создавали базы данных, примите мои поздравления. Можете вычеркнуть этот пункт из своего списка дел, которые обязательно нужно реализовать в жизни.

Далее вставьте три набора данных в новую пустую таблицу:

>>> ins = 'INSERT INTO zoo (critter, count, damages) VALUES (???)'

>>> conn.execute(ins, 'duck', 10, 0.0)

>>> conn.execute(ins, 'bear', 2, 1000.0)

>>> conn.execute(ins, 'weasel', 1, 2000.0)

Далее сделайте выборку того, что только что разместили в базе:

>>> rows = conn.execute('SELECT * FROM zoo')

В SQLAlchemy rows не является списком — это специальный объект ResultProxy, который мы не можем отобразить непосредственно:

>>> print(rows)

Однако вы можете итерировать по нему, как по списку, и получать по одному ряду за раз:

>>> for row in rows:

…·····print(row)

('duck', 10, 0.0)

('bear', 2, 1000.0)

('weasel', 1, 2000.0)

Этот пример очень похож на другой, где использовался SQLite DB-API. Единственное преимущество этого подхода заключается в том, что нам не нужно импортировать драйвер — SQLAlchemy сам определил драйвер на основе строки соединения. Простое изменение строки соединения позволит перенести этот код на базу данных другого типа. Еще один плюс SQLAlchemy заключается в наличии пула соединений, о котором вы можете прочитать на сайте http://bit.ly/conn-pooling, содержащем документацию.

Язык выражений SQL

Следующий уровень SQLAlchemy — это язык выражений SQL. Он предоставляет функции, которые позволяют создать SQL для разных операций. Язык выражений обрабатывает большее количество различий в диалектах, чем низкоуровневый слой движка. Он может оказаться полезным промежуточным решением для приложений, работающих с реляционными базами данных.

Рассмотрим создание и наполнение таблицы zoo. Вновь все последующие фрагменты принадлежат одной программе.

Импортирование и подключение не изменяются:

>>> import sqlalchemy as sa

>>> conn = sa.create_engine('sqlite://')

Для того чтобы определить таблицу zoo, вместо SQL начнем использовать язык выражений:

>>> meta = sa.MetaData()

>>> zoo = sa.Table('zoo', meta,

…·····sa.Column('critter', sa.String, primary_key=True),

…·····sa.Column('count', sa.Integer),

…·····sa.Column('damages', sa.Float)

…····)

>>> meta.create_all(conn)

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

В отличие от множества трудов, посвященных руководству проектами и командами, в этой книге не проповедуются никакие новые учения и не превозносятся великие теории. Скотт Беркун считает залогом успеха практику и разнообразие подходов. В книге описываются основные сложности и проблемные ситуации, возникающие в работе менеджера проекта, даны рекомендации по выходу из них.Издание предназначено не только для лидеров команд и менеджеров высшего звена, но и для программистов, тестеров и других исполнителей конкретных проектных заданий. Также оно будет полезно студентам, изучающим бизнес-менеджмент, проектирование изделий или программную инженерию.Текст нового издания значительно переработан автором с целью добиться большей ясности, кроме того, книга дополнена новым приложением и более чем 120 практическими упражнениями.

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги

3ds Max 2008
3ds Max 2008

Одни уверены, что нет лучшего способа обучения 3ds Мах, чем прочитать хорошую книгу. Другие склоняются к тому, что эффективнее учиться у преподавателя, который показывает, что и как нужно делать. Данное издание объединяет оба подхода. Его цель – сделать освоение 3ds Мах 2008 максимально быстрым и результативным. Часто после изучения книги у читателя возникают вопросы, почему не получился тот или иной пример. Видеокурс – это гарантия, что такие вопросы не возникнут: ведь автор не только рассказывает, но и показывает, как нужно работать в 3ds Мах.В отличие от большинства интерактивных курсов, где работа в 3ds Мах иллюстрируется на кубиках-шариках, данный видеокурс полностью практический. Все приемы работы с инструментами 3ds Мах 2008 показаны на конкретных примерах, благодаря чему после просмотра курса читатель сможет самостоятельно выполнять даже сложные проекты.

Владимир Антонович Верстак , Владимир Верстак

Программирование, программы, базы данных / Программное обеспечение / Книги по IT