Python и PostgreSQL: как получить доступ к базе данных PostgreSQL

Python и PostgreSQL База данных

Python и PostgreSQL

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.

Должен запуститься интерактивный терминал 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 в каталоге вашего проекта.

Теперь введите следующие строки и сохраните файл.

Сначала создайте программу на 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 и сохраните его.

Введите следующий код в новый скрипт 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 в каталоге вашего проекта, введите следующие коды и сохраните файл.

Создайте новый файл insert.py в каталоге вашего проекта

Теперь запустите скрипт Python insert.py следующим образом:

$ python3 insert.py

Данные должны быть вставлены.

Как вы можете видеть в терминале PostgreSQL.

Как вы можете видеть в терминале PostgreSQL

В сценарии insert.py строка 12 метод cur.execute () запускает SQL-запрос для вставки в таблицу пользователей. % S «ы заменяется строками из кортежа, второй параметр cur.execute () методы.

Первое вхождение % s заменяется первым элементом кортежа, второе % s заменяется вторым элементом кортежа и так далее. Вы также можете смешивать типы данных, если хотите. Например, % d представляет собой целое число.

Получение данных из базы данных PostgreSQL

Теперь вы можете получить данные, которые вы вставили в базу данных PostgreSQL.

Сначала создайте новый скрипт Python fetch.py и введите следующие строки кода. Затем сохраните файл.

Сначала создайте новый скрипт Python fetch.py и введите следующие строки кода

Теперь запустите скрипт fetch.py ​​с помощью следующей команды:

$ python3 fetch.py

Как видите, данные, которые я вставил, были извлечены. Он возвращается как кортеж, что-то вроде массива.

Как видите, данные, которые я вставил, были извлечены

В скрипте fetch.py все аналогично, как и в других скриптах. Здесь метод cur.fetchone () используется для возврата первой строки таблицы. Если у вас много строк, вы можете продолжать вызывать cur.fetchone () для перебора списка. Когда все строки будут возвращены, cur.fetchone () вернет None.strong>.

Читайте также:  Как экспортировать данные таблицы в файл PDF из SQL?
Оцените статью
bestprogrammer.ru
Добавить комментарий