本記事では「初めてのDjango(発展編)」として、初めてDjangoというフレームワークを使用してWebアプリケーションを作ってみたい!という方向けに、簡単なアプリケーションを作成しながら基本的な知識をご紹介していきます。
また本記事で作成していくアプリケーションは、「初めてのDjango(入門編)」の続きとして編集していきます。
本シリーズの全容はこのようになっております。
- (入門編 #01)単一ページのアプリケーション作成まで
- (入門編 #02)CSSの適用からベーステンプレートの作成まで
- (入門編 #03)コンテキスト情報とテンプレートタグの活用
- (入門編 #04)お問い合わせフォームの設置、メール送信処理まで
- (入門編 #05)お問い合わせ送信後にメッセージを表示させる
- (入門編 #06)アプリケーションをGAEにデプロイ
- (発展編 #01)データベースの設定を行う ←イマココ
- (発展編 #02)カスタムユーザーモデルの定義、マイグレーション
- (発展編 #03)django-allauthで認証機能を実装する
- (発展編 #04)ListViewを用いてモデル情報を描写する
- (発展編 #05)CreateViewを使用してデータベースを更新
- (発展編 #06)DetailViewを用いて詳細表示
- (発展編 #07)UpdateViewを用いてデータベース編集
- (発展編 #08)DeleteViewを用いてデータベースのレコード削除
PostgresSQLでデータベース作成
発展編ではデータベースを使用します。開発用の環境に PostgreSQL をインストールし、データベース環境を整えましょう!
こちらにアクセスします。
開発環境のOSに合ったものをインストールしましょう。
本記事執筆時点では バージョン14.6 を使用しておりますが、それ以降でも構いません。
インストールが終了すると、「Stack Builder」が起動し、追加でツールなどをインストールするかどうか聞かれます。今回はチェックを外して「Finish」ボタンを押してインストール作業を終了させましょう。
PostgreSQLを使用してデータベースを作成したりデータをいじるには、
- コマンドベースで行う
- pgAdmin 4 を使用する
の2通りあります。「pgAdmin 4」はデフォルトで一緒にインストールされています。今回は直感的にGUI操作を行うことができる「pgAdmin 4」を使用します。
windowsの場合
スタートボタンのプログラム一覧の中に「PostgreSQL 14」→「pgAdmin 4」があるので、クリックして起動させます。
Macの場合
/Application/PostgreSQL 14/ ディレクトリにある「pgAdmin 4.app」をダブルクリックして起動させます。
pgAdmin 4を起動するとパスワードの入力を求められます。初めて起動する際はパスワードの設定を行います。起動するたびに毎回入力を求められますので控えておきましょう。
左上の「Servers」をダブルクリックして、プルダウンを表示させます。この際に先ほど設定したパスワードを求められる場合があります。
さらに「データベース」を右クリックし、「データベース…」をクリックしてください。
このような画面が表示されます。
「データベース」欄に任意のデータベース名を入力し、右下の「保存」をクリックしましょう。
このように「データベース」直下に、作成したデータベースが追加されます。
Djangoのデータベース設定を変更する
Djangoでは、データベースの設定を settings.py 内の「DATABASES」という辞書変数内で行います。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
このようにデフォルトではsqlite3を使用しているようです。
- ENGINE
-
どのデータベースを管理システムを使用するか。
- NAME
-
接続するデータベース名。
今回はpostgreSQLを使用するので、下記のように修正しましょう。
# ... 略 ...
# Read settings.json
try:
config_path = os.path.join(BASE_DIR, 'settings.json')
config = json.load(open(config_path, "r", encoding="utf-8"))
except FileNotFoundError as e:
print("[ERROR] Config file is not found.")
raise e
except ValueError as e:
print("[ERROR] Json file is invalid.")
raise e
secret_key = config['SECRET_KEY']
email_host = config['EMAIL_HOST']
email_host_pass = config['EMAIL_HOST_PASS']
db_user = config['DB_USER']
db_password = config['DB_PASSWORD']
# ... 略 ...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'cafe_app',
'USER': db_user,
'PASSWORD': db_password,
'HOST': '',
'PORT': '',
}
}
PostgreSQLに変更するにあたって「ユーザー名」「パスワード」が必要なのですが、ごりごりの機密情報なので直接 settings.py 内には記述しないようにしています。
その代わりに settings.json というファイルに記述し、そこから読み取るようにしています。なので settings.json も下記のように編集しましょう。
{
"SECRET_KEY":"<Djangoプロジェクトのシークレットキー>",
"EMAIL_HOST":"<Googleアカウントのメールアドレス>",
"EMAIL_OUTLOOK":"<OutLookのアドレス>",
"EMAIL_HOST_PASS":"<Googleアプリパスワード>",
"DB_USER": "postgreSQLのユーザー名",
"DB_PASSWORD": "postgreSQLのパスワード"
}
postgreSQLのユーザー名は、pgAdmin 4にて確認できます。
「PostgreSQL 14」右クリックし、「プロパティ」をクリックします。
「接続」タブ内にある「ユーザ名」の欄にユーザー名が記述してあります。
DB_PASSWORDは、pgAdmin 4を起動したときに設定したパスワードです。
最後に、pythonからpostgreSQLに接続するときに使用するドライバをインストールします。pythonの仮想環境に入った状態で、ターミナル上で下記のコマンドを実行します。
(venv_cafe)$ pip install psycopg2-binary
以上です!お疲れ様でした!
この時点でのコード全体をGithubに載せております。確認用としてお使いいただければと思います。
まとめ
本セクションでは、今後使用するデータベースの設定(開発環境)を行いました。
次回は、Djangoの認証機能を実装するにあたって必要なカスタムユーザーモデルや、データベースを更新するためのマイグレーションについて解説させていただきます。
ご覧いただきありがとうございました!
コメント
コメント一覧 (9件)
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]
[…] (発展編 #01)データベースの設定を行う […]