Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Пример простого клиента к базе данных PostgreSQL. Библиотека psycopg2

Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.

programmer's notes (python and more) | Дзен
Программирование и проектирование реляционных баз данных | programmer's notes (python and more) | Дзен

Простой клиент на Python к базе данных PostgreSQL с использованием библиотеки psycopg2

Я размышлял, нужно ли торопиться и сразу приводить какой-то рабочий пример на Python по доступу к базам данных. И подумал: А почему нет? Кто-то уже начнёт пробовать писать программы. И это хорошо.

Поэтому, не объясняя того, что за зверь сервер баз данных PostgreSQL, как у меня база данных оказалась на сервере, что такое язык SQL, что из себя представляет библиотека psycopg2, я сразу привожу готовую работающую программу.

По библиотеке psycopg2 всё таки скажу. Если она у вас не установлена, то установить её можно через pip3 (pip). Если не будет устанавливаться psycopg2, попробуйте установить psycopg2-binary.

И так, ниже представлена программа которая запрашивает поля для строки таблицы, потом добавляет строку к таблице, потом выводит содержимое строк таблицы.

Это та самая таблица (Рисунок 1), которую я рассматривал на лекции. Отмечу только, что русские названия я заменил словами из английских букв. Вот и всё.

Текст программы см. ниже
Текст программы см. ниже
primer188.py

Выполнение программы

Куликов К.К.
Петрова 6-7
105
2 Петров И.И. Московская 5-67 102
3 Иванов П.П. Заречная 6 102
4 Сидоров А.А. Вокзальная 3-45 101
6 Журбин Ж.Ж. Перова 45-1 102
7 Куликов К.К. Петрова 6-7 105

Сделаем несколько замечаний по программе

1. Для того, чтобы работать с базой данных мы должны произвести соединение. Если оно успешно, то далее можно выполнять команды SQL над объектами этой базы данных. Параметры команды psycopg2.connect(), я думаю, вполне понятны.

2. Как я уже сказал, я пока не объясняю, как была создана база данных и таблица в ней. Это можно сделать по-разному. Но в любом случае у вас должен быть установлен сервер баз данных PostgreSQL. Ну либо вы работаете с уже установленным, например удалённым, сервером. Для того, чтобы работать сервером можно использовать стандартный инструментарий PostgreSQL, что не очень удобно. Но есть и специальные клиенты для этого. Из бесплатных наиболее продвинутым является dbeaver. Правда иногда вываливаются ошибки, но его универсальность их перевешивает. Наверное, я как нибудь прочту лекцию об этой программе.

3. В программе создаётся объект cursor(), который используется для получения данных с сервера и их обработку. Вообще термин курсор в теории реляционных баз данных играет особую роль. Если простыми словами, то это таблица, по которой можно передвигаться от одной строки к другой - возможность, которая отсуствует в обычных реляционных таблицах. Другими словами для строки есть понятие следующей строки и предыдущей строки.

4. Вопрос, который мне могут задать: почему при добавлении строки я не указываю значение поля id. Это, как вы знаете, первичный ключ. При создании столбца можно указать, что он будет автоматически генерироваться значения. Поэтому в программе указаны только остальные значения полей.

3. Напомню, что в Python тройные кавычки используются для многострочных строк.

Ну я объяснил не всё. Но как я уже написал, я сильно забежал вперёд и остальные детали и нюансы будут открываться постепенно.

Рисунок 1. Структура таблицы.
Рисунок 1. Структура таблицы.

Библиотека psycopg2, которая использовалась в данной статье, подчеркнем, это сторонняя разработка. Подобных библиотек, которые можно использовать для работы только с PostgreSQL, наверное, с десяток будет. О некоторых из них я ещё расскажу. Ну, а на psycopg2, я, конечно, остановлюсь подробно в одной из следующих статей.

Ну, пока всё!

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

Вы научились писать команду insert, но это ещё не весь SQL
Вы научились писать команду insert, но это ещё не весь SQL