Как работать с лучшей бесплатной базой данных из 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. А вы какие используете инструменты работы с базами данных? Делитесь в комментариях.