February 5, 2021

Как работать с лучшей бесплатной базой данных из Python

Отличным  модулем для работы с PostgreSQL из Python является psycopg2 (написан на  Си). Посмотрим, как настроить его работу в несколько строк кода.

Для  установки psycopg2 в теории можно воспользоваться как менеджером  пакетов pip, так и conda (если вы используете среду для программирования  Anaconda).  Я рекомендую по возможности пользоваться Anaconda и ее  инструментарием, так как это избавляет вас от возникающих проблем с  совместимостью или неполадками при установке пакетов. То есть любой  пакет сначала желательно попробовать установить с использованием conda, а  если он найден не будет, применять pip. Например, в ходе установки  psycopg2 через pip у меня возникли проблемы:

В то же время аналогичная команда с conda завершилась без проблем:

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

import psycopg2

conn = psycopg2.connect(dbname='postgres', user='postgres', password='postgres', host='localhost')

Для получения соединения потребуется задать, имя базы данных (в нашем примере - postgres), имя (postgres) и пароль пользователя (postgres), а также адрес хоста (localhost).

Чтобы делать запросы к базе данных нужно получить курсор:

cursor = conn.cursor()

Далее  можно сделать выборку имеющихся в некоторой таблице значений следующим  образом (работаем с таблицей authors, которую создали ранее):

cursor.execute('SELECT * FROM authors')

cursor.fetchall()

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

cursor.execute("INSERT INTO authors (name, adr, success) VALUES ('fifth', 'adr5','6')")

Теперь обновим значение и посмотрим на результат:

cursor.execute("UPDATE authors SET NAME='first2' WHERE adr = 'adr1'")

Удалим последнее значение:

cursor.execute("DELETE FROM authors where name='first2'")

После завершения работы следует закрыть курсор и соединение с базой данных:

cursor.close()

conn.close()

Таким  образом, psycopg2 позволяет выполнять стандартные операции для работы с  базой данных PostgreSQL из Python. А вы какие используете инструменты  работы с базами данных? Делитесь в комментариях.