Использование сценариев Python

ispolzovanie scenariev python Базы данных и постоянное хранение

Далее приводится листинг сеанса, в котором эти сценарии запускаются из командной строки, чтобы проиллюстрировать их действие. Большинство файлов содержат функции, которые могут импортироваться и вызываться из других программ — при запуске сценарии просто отображают аргументы командной строки в аргументы функций. Для начала инициализируем тестовую базу данных и загрузим ее таблицу из текстового файла:

\PP4E\Dbase\Sql> makedb.py testdb

Are you sure?y

database table did not exist made testdb people

\PP4E\Dbase\Sql> loaddb.py testdb data2.txt

3 rows loaded

Затем проверим результат наших действий с помощью утилиты вывода (используйте аргумент -, чтобы обеспечить форматированный вывод):

\PP4E\Dbase\Sql> dumpdb.py testdb

(‘bob’, ‘developer’, 80000)

(‘sue’, ‘music’, 90000)

(‘ann’, ‘manager’, 80000)

\PP4E\Dbase\Sql> dumpdb.py testdb

3 records pay => 80000 job => developer name => bob pay => 90000 job => music name => sue pay => 80000 job => manager name => ann

Сценарий производит исчерпывающий вывод — чтобы просмотреть определенные записи, передайте сценарию строку запроса в командной строке (следующие командные строки были разбиты, чтобы уместить их по ширине страницы):

\PP4E\Dbase\Sql> querydb.py testdb

"select name, job from people where pay = 80000"

2 records

job => developer name => bob job => manager name => ann

\PP4E\Dbase\Sql> querydb.py testdb

"select * from people where name = ‘sue’"

1 records pay => 90000 job => music name => sue

Теперь очистим базу данных и вновь наполним ее данными из файла. Сценарий очистки стирает все записи, но он не выполняет полную инициализацию базы данных:

\PP4E\Dbase\Sql> cleardb.py testdb Are you sure?y

\PP4E\Dbase\Sql> dumpdb.py testdb 0 records

\PP4E\Dbase\Sql> loaddb.py testdb data.txt 5 rows loaded

\PP4E\Dbase\Sql> dumpdb.py testdb

(‘bob’, ‘devel’, 50000)

(‘sue’, ‘music’, 60000)

(‘ann’, ‘devel’, 40000)

(‘tim‘, ‘admin‘, 30000)

(‘kim‘, ‘devel‘, 60000)

В заключение ниже приводится пример выполнения трех запросов с этими новыми данными: они отбирают имена разработчиков, должности с зарплатой выше определенного уровня и записи с уровнем зарплаты выше заданного уровня, отсортированные по должности. Разумеется, эти операции можно было бы выполнить в интерактивном сеансе Python, но здесь мы бесплатно получаем в свое распоряжение значительную часть настроек и типового программного кода:

\PP4E\Dbase\Sql> querydb.py testdb

"select name from people where job = ‘devel’"

3 records

name => bob

name => ann

name => kim

\PP4E\Dbase\Sql> querydb.py testdb

"select job from people where pay >= 60000"

2 records

job => music

job => devel

\PP4E\Dbase\Sql> querydb.py testdb

"select * from people where pay >= 60000 order by job"

2 records

pay => 60000 job => devel

name => kim pay => 60000 job => music name => sue

Прежде чем двинуться дальше, немного дополнительной информации: сценарии в этом разделе иллюстрируют преимущества повторного использования программного кода, соответствуют поставленной цели (хотя бы частично представляют интерфейс баз данных) и служат моделью готовых утилит для работы с базами данных. Но они все еще не настолько универсальны, насколько могли бы быть. Например, поддержка сортировки могла бы быть полезным расширением сценария вывода. Мы могли бы обобщить эти сценарии еще больше, добавив поддержку дополнительных возможностей, тем не менее, рано или поздно нам может потребоваться вернуться к вводу команд SQL на стороне клиента — отчасти потому, что SQL является языком и должен поддерживать достаточный уровень общности. Дальнейшее расширение этих сценариев я оставляю в качестве самостоятельного упражнения. Изменяйте их реализацию по своему усмотрению, в конце концов, это — Python.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий