psycopg2 を使うサンプル

環境変数から接続情報を取得します。


In [1]:
import os

pgconfig = {
    'host': os.environ['PGHOST'],
    'port': os.environ['PGPORT'],
    'database': os.environ['PGDATABASE'],
    'user': os.environ['PGUSER'],
    'password': os.environ['PGPASSWORD'],
}

psycopg2 モジュールを読み込み、環境変数から取得した接続情報でデータベースに接続します。


In [2]:
import psycopg2

conn = psycopg2.connect(**pgconfig)

SQL を実行するためのカーソルを取得します。


In [3]:
cur = conn.cursor()

テーブルを定義します。


In [4]:
cur.execute('''
DROP TABLE IF EXISTS t ;

CREATE TABLE t (
    id SERIAL,
    code CHAR(2) NOT NULL,
    name TEXT NOT NULL,
    created_at TIMESTAMP WITHOUT TIME ZONE DEFAULT now()
)''')

データを登録します。


In [5]:
cur.execute('''
INSERT INTO t (
    code, name
) VALUES
    ('01', '北海道'),
    ('47', '沖縄県')
''')

データを取得します。


In [6]:
cur.execute("SELECT * FROM t")
cur.fetchone()


Out[6]:
(1, '01', '北海道', datetime.datetime(2016, 7, 3, 11, 35, 37, 668582))

In [7]:
cur.fetchone()


Out[7]:
(2, '47', '沖縄県', datetime.datetime(2016, 7, 3, 11, 35, 37, 668582))

カーソルと接続を閉じます。


In [8]:
cur.close()
conn.close()