Python + PSQL
Если захотели получить данные из внешнего приложения, написанного вами.
Например, возьмем язык Python как основного бэкэнд-сервера, как основного клиента по получению и сохранению данных.
Установка psycopg2
Устанавливаем из репозитирия:
sudo apt install python3-psycopg2
Подключение к базе данных
import psycopg2
# Таблица, которую мы создали до этого
conn = psycopg2.connect(dbname="test_db_from_psql", host="localhost", user="postgres", password="postgres1234", port="5432")
print("connected to data base")
conn.close()
Получение данных (Cursor)
Взаимодействие с базой данных производтся при помощи объекта класса cursor. Получить его можно через метод объекта класса connection - cursor().
Основные методы класса cursor:
Метод |
Описание |
Пример |
|---|---|---|
|
выполняет одну SQL-инструкцию. Через второй параметр в код SQL можно передать набор параметров в виде списка или словаря |
|
|
выполняет параметризованное SQL-инструкцию. Через второй параметр принимает наборы значений, которые передаются в выполняемый код SQL. |
|
|
выполняет хранимую функцию. Через второй параметр можно передать набор параметров в виде списка или словаря |
|
|
возвращает код запроса SQL после привязки параметров |
|
|
возвращает следующую строку из полученного из БД набора строк в виде кортежа. Если строк в наборе нет, то возвращает |
|
|
возвращает набор строк в виде списка. количество возвращаемых строк передается через параметр. Если больше строк нет в наборе, то возвращается пустой список. |
|
|
возвращает все (оставшиеся) строки в виде списка. При отсутствии строк возвращается пустой список. |
|
|
перемещает курсор в наборе на позицию |
Ниже пример получения всех строк из, созданной ранее таблицы:
import psycopg2
# Таблица, которую мы создали до этого
conn = psycopg2.connect(dbname="test_db_from_psql", host="localhost", user="postgres", password="postgres1234", port="5432")
cursor = conn.cursor() # получаем курсор
cursor.execute("SELECT * FROM user_equipment")
print(cursor.fetchall())
cursor.close() # закрываем курсор
conn.close()
Выполняем запросы в SQL-формате
Выполнение команд SQL производится при помощи методов execute/executemany курсора, но для подтверждения их выполнения необходимо вызывать метод commit() объекта connection. Например:
import psycopg2
# Таблица, которую мы создали до этого
conn = psycopg2.connect(dbname="test_db_from_psql", host="localhost", user="postgres", password="postgres1234", port="5432")
cursor = conn.cursor() # получаем курсор
sql = "CREATE DATABASE new_data_base" # SQL-запрос в виде строки
cursor.execute(sql)
conn.commit() # здесь команда на самом деле выполнится
cursor.close() # закрываем курсор
conn.close()