Python+Djangoを使ってみる(チュートリアルをやってみる:第2回)


前回は、「Pythonを使ってみようではないか→Pythonは入っているね→じゃ、Djangoだ」という流れでした。
Djangoをインストールして、チュートリアルの最初を体験しました。

そこで、今回はPostgreSQLをインストールします。

1.まずはPostgreSQLのインストール

PythonからPostgreSQLを触らなきゃいけないので、そのためのライブラリもインストールしています。
(わざとらしく、「ポスグレの中にpythonって名前のつくライブラリがあったよな・・・」と検索してみせたりしています。)

$ sudo apt-get install postgresql
$ sudo apt-cache search postgresql |grep python
$ sudo apt-get install python-psycopg2

2.Fingerのインストール

不要と言えば不要なのですが、PostgreSQLのインストール時に「postgres」というユーザーを作っちゃうみたいです。
そこで「本当に作ったのね」と確認するために、ついインストールしてしまったのがFingerです。
せっかくなので、書いときます。

$ sudo apt-get install finger

で、確かにいました。

$ finger postgres
Login: postgres       			Name: PostgreSQL administrator
Directory: /var/lib/postgresql      	Shell: /bin/bash
Never logged in.
No mail.
No Plan.

3.postgresユーザのパスワード設定

勝手に作られたpostgresユーザですので、パスワードを設定しておきましょう。

$ sudo passwd postgres

4.postgresユーザでPostgreSQLのpostgresユーザのパスワードを設定

「お前は何を言っているのだ?」という表題ですが、こういうことです。
”PostgresSQLのDBのユーザとして初期に存在している「postgres」さんのパスワードを変えましょうね」だけど、そのためにはUbuntuのユーザとして「postgres」さんになっておきましょうね”

$ sudo su - postgres
$ psql -c "alter user postgres with password 'postgres'"
ALTER ROLE

5.PostgreSQLの初期化

これ大切です。

$ sudo mkdir /var/lib/postgresql/data
$ sudo chown -R postgres:postgres /var/lib/postgresql/data
$ sudo su - postgres
$ /usr/lib/postgresql/9.1/bin/initdb --encoding='UTF-8' -D /var/lib/postgresql/data

6.PostgreSQLの動作確認

まずはDBを作りましょう。

($ sudo su - postgres)
$ createdb -U postgres -E UTF8 testdb

作ったDBを確認します。抜けるときには「\q」です。

($ sudo su - postgres)
$ psql -U postgres -l
\q

DBに接続します。そのままテーブルを作っちゃいましょう。

($ sudo su - postgres)
$ psql -d testdb
testdb=# CREATE TABLE lunchmenu (
    id            INTEGER  PRIMARY KEY NOT NULL,
    name TEXT  NOT NULL,
    price    REAL     NOT NULL CHECK ( price > 0 ));
testdb=# \d

続けてデータも流し込んじゃいましょう。

testdb=# BEGIN TRANSACTION;
testdb=# INSERT INTO lunchmenu VALUES( 1, 'カレーライス', 700);
testdb=# INSERT INTO lunchmenu VALUES( 2, '塩ラーメン', 650 );
testdb=# COMMIT;

確認します。

($ sudo su - postgres)
testdb=# select * from lunchmenu;
 id |     name     | price 
----+--------------+-------
  1 | カレーライス |   700
  2 | 塩ラーメン   |   650
(2 rows)

以上で、ちゃんとPostgreSQLが動くことも確認できました。
今回は以上です。

次回はDjangoのチュートリアルに戻って、DjangoからPostgreSQLを操作してみましょう。

The following two tabs change content below.

谷中

システム開発チームと検証チームのマネージャー。 「疎結合 小さなクラス 分業制」 を裏スローガンとし、これが実現できてこそ、幸せな開発者人生を過ごせるという確信のもと、上流から設計まで口を挟んだり挟まなかったりしています。

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>