【python】psycopg2

psycopg2はpythonからPostgreSQLに接続するためのライブラリ
C言語で書かれたlibpgのラッパー

ライブラリのインストール
$ pip install psycopg2

データベース作成
postgres=# create database mydb;
CREATE DATABASE

テーブル作成
postgres=# \c mydb
You are now connected to database “mydb” as user “postgres”.
CREATE TABLE users(
id SERIAL,
email varchar(255) NOT NULL,
password varchar(255) NOT NULL,
PRIMARY KEY(id)
);

mydb=# \dt
List of relations
Schema | Name | Type | Owner
——–+——-+——-+———-
public | users | table | postgres
(1 row)

import psycopg2

connection = psycopg2.connect(host='localhost',
								user='postgres',
								password='password',
								database='mydb')

with connection:
	with connection.cursor() as cursor:
		sql = "INSERT INTO users(email, password) VALUES(%s, %s)"
		cursor.execute(sql, ('webmaster@python.org', 'very-secret'))

	connection.commit()

mydb=# select * from users;
id | email | password
—-+———————-+————-
1 | webmaster@python.org | very-secret
(1 row)

withを使わずに記述することも可能。その場合は、自動的に閉じないため明示的に閉じる必要がある

import psycopg2

connection = psycopg2.connect(host='localhost',
								user='postgres',
								password='password',
								database='mydb')

cursor = connection.cursor()
sql = "INSERT INTO users(email, password) VALUES (%s, %s)"
cursor.execute(sql, ('webmaster2@python.org', 'much-secret'))

connection.commit()

cursor.close()
connection.close()

なるほど、psqlに接続するためのライブラリってことね