PostgreSQL является удивительным и современным R elational D atabase М ПРАВЛЕНИЕ S ystem (СУБД). Он также является базой данных с открытым исходным кодом. PostgreSQL — кроссплатформенный. Вы можете очень легко установить PostgreSQL в Windows, Mac OS и Linux.
Вы можете легко взаимодействовать с базой данных PostgreSQL с помощью языка программирования Python. Все, что вам нужно сделать, это установить модуль Python psycopg2 с PIP, и все готово.
В этой статье я покажу вам, как получить доступ к базе данных PostgreSQL с помощью Python в Linux. Я собираюсь использовать Debian 9 Stretch в качестве операционной системы и языка программирования Python 3. Версия базы данных PostgreSQL, которую я собираюсь использовать, — PostgreSQL 9.6. Итак, приступим.
Предварительные условия:
- Установлен любой современный дистрибутив Linux, такой как Ubuntu / Debian / CentOS и т. Д.
- Установлен язык программирования Python.
- PIP или PIP3 установлен в зависимости от версии вашего Python.
- PostgreSQL установлен.
Вы можете найти множество статей на linuxhint.com, которые могут помочь вам настроить PostgreSQL и установить Python + PIP в ваш любимый дистрибутив Linux. Просто ищи это.
Создание базы данных и пользователя PostgreSQL
В этом разделе я покажу вам, как создать базу данных PostgreSQL и пользователя в Linux. Мы будем подключаться к этой базе данных из Python позже в этой статье.
Сначала узнайте свое имя пользователя для входа с помощью следующей команды:
$ whoami
Как видите, мое имя пользователя для входа — shovon. Ваш будет другим. Обязательно запишите это, так как оно вам понадобится позже.
Теперь запустите интерактивный терминал PostgreSQL с помощью следующей команды:
$ sudo -u postgres psql
Должен запуститься интерактивный терминал PostgreSQL.
Теперь создайте базу данных PostgreSQL pyapp с помощью следующей команды SQL:
postgres=# CREATE DATABASE pyapp;
Pyapp база данных должна быть создана.
Теперь вам нужно создать нового пользователя PostgreSQL. Также убедитесь, что имя пользователя совпадает с вашим логином.
Создайте нового пользователя PostgreSQL с помощью следующей команды SQL:
postgres=# CREATE USER your_login_username WITH ENCRYPTED PASSWORD ‘your_password’;
ПРИМЕЧАНИЕ: замените your_login_username и your_password своим собственным именем пользователя и паролем для входа.
Должен быть создан пользователь PostgreSQL.
Теперь предоставьте вновь созданному пользователю все привилегии для только что созданной базы данных pyapp с помощью следующей команды SQL:
postgres=# GRANT ALL ON DATABASE pyapp TO your_login_username;
Все привилегии для базы данных pyapp предоставлены вашему пользователю, входящему в систему.
Теперь выйдите из терминала PostgreSQL с помощью следующей команды:
postgres=# \q
Теперь давайте посмотрим, сможем ли мы войти в нашу недавно созданную базу данных pyapp, используя наше имя пользователя, с помощью следующей команды:
$ psql —dbname=pyapp —password
Теперь введите пароль, который вы установили ранее для своего пользователя PostgreSQL, и нажмите .
Вы должны войти в систему.
Установка psycopg2 с PIP и PIP3
Пришло время установить модуль Python psycopg2.
Если вы используете Python 3, выполните следующую команду для установки psycopg2 :
$ pip3 install psycopg2-binary
Если вы используете Python 2, выполните следующую команду для установки psycopg2 :
$ pip install psycopg2-binary
Должен быть установлен модуль psycopg2-binary PIP.
Создание каталога проекта
Теперь создайте каталог проекта pyapp с помощью следующей команды:
$ mkdir pyapp
И перейдите в каталог с помощью следующей команды:
$ cd pyapp
Здесь я создам весь сценарий Python для доступа к базе данных PostgreSQL.
Подключение к базе данных PostgreSQL
Сначала создайте программу на Python connect.py в каталоге вашего проекта.
Теперь введите следующие строки и сохраните файл.
Теперь запустите сценарий connect.py с помощью одной из следующих команд:
Для Python 3:
$ python3 connect.py
Для Python 2:
$ python connect.py
Как видите, я подключен к базе данных.
Здесь, в строке 1, импортируется модуль psycopg2. В строке 4 для подключения к базе данных PostgreSQL используется метод psycopg2.connect (). Блок try-except используется для обнаружения ошибок, если что-то пойдет не так и соединение с базой данных не удастся.
Выполнение команд SQL
В этом разделе я создам простую таблицу пользователей с помощью Python psycopg2.
Введите следующий код в новый скрипт Python create_table.py и сохраните его.
Теперь запустим скрипт:
$ python3 create_table.py
Как видите, таблица users создана.
С psycopg2, если вы хотите выполнить команду SQL, сначала вам нужно создать курсор.
В строке 9 я создал курсор с помощью метода conn.cursor () и сохранил его в переменной cur. Здесь conn — это переменная, в которой я сохранил соединение с базой данных из метода psycopg2.connect ().
Затем вы выполняете команду SQL с курсором как cur.exec («YOUR_SQL_GOES_HERE»), что я сделал в строке 12-17 для создания таблицы пользователей.
Если ваша команда SQL вносит изменения в базу данных, к которой вы подключены, вам нужно вызвать метод conn.commit (), чтобы сделать изменения постоянными, как я сделал в строке 19.
Вставка данных в базу данных PostgreSQL
Теперь, когда у вас есть таблица пользователей, давайте вставим в нее некоторые данные.
Создайте новый файл insert.py в каталоге вашего проекта, введите следующие коды и сохраните файл.
Теперь запустите скрипт Python insert.py следующим образом:
$ python3 insert.py
Данные должны быть вставлены.
Как вы можете видеть в терминале PostgreSQL.
В сценарии insert.py строка 12 метод cur.execute () запускает SQL-запрос для вставки в таблицу пользователей. % S «ы заменяется строками из кортежа, второй параметр cur.execute () методы.
Первое вхождение % s заменяется первым элементом кортежа, второе % s заменяется вторым элементом кортежа и так далее. Вы также можете смешивать типы данных, если хотите. Например, % d представляет собой целое число.
Получение данных из базы данных PostgreSQL
Теперь вы можете получить данные, которые вы вставили в базу данных PostgreSQL.
Сначала создайте новый скрипт Python fetch.py и введите следующие строки кода. Затем сохраните файл.
Теперь запустите скрипт fetch.py с помощью следующей команды:
$ python3 fetch.py
Как видите, данные, которые я вставил, были извлечены. Он возвращается как кортеж, что-то вроде массива.
В скрипте fetch.py все аналогично, как и в других скриптах. Здесь метод cur.fetchone () используется для возврата первой строки таблицы. Если у вас много строк, вы можете продолжать вызывать cur.fetchone () для перебора списка. Когда все строки будут возвращены, cur.fetchone () вернет None.strong>.