【初めてのDjango】(発展編 #01)データベースの設定を行う

本記事では「初めてのDjango(発展編)」として、初めてDjangoというフレームワークを使用してWebアプリケーションを作ってみたい!という方向けに、簡単なアプリケーションを作成しながら基本的な知識をご紹介していきます。

また本記事で作成していくアプリケーションは、「初めてのDjango(入門編)」の続きとして編集していきます。

本シリーズの全容はこのようになっております。

目次

PostgresSQLでデータベース作成

発展編ではデータベースを使用します。開発用の環境に PostgreSQL をインストールし、データベース環境を整えましょう!

STEP
公式サイトからインストール

こちらにアクセスします。

開発環境のOSに合ったものをインストールしましょう。

本記事執筆時点では バージョン14.6 を使用しておりますが、それ以降でも構いません。

インストールが終了すると、「Stack Builder」が起動し、追加でツールなどをインストールするかどうか聞かれます。今回はチェックを外して「Finish」ボタンを押してインストール作業を終了させましょう。

STEP
pgAdmin 4 の起動

PostgreSQLを使用してデータベースを作成したりデータをいじるには、

  1. コマンドベースで行う
  2. pgAdmin 4 を使用する

の2通りあります。「pgAdmin 4」はデフォルトで一緒にインストールされています。今回は直感的にGUI操作を行うことができる「pgAdmin 4」を使用します。

windowsの場合

スタートボタンのプログラム一覧の中に「PostgreSQL 14」→「pgAdmin 4」があるので、クリックして起動させます。

Macの場合

/Application/PostgreSQL 14/ ディレクトリにある「pgAdmin 4.app」をダブルクリックして起動させます。

STEP
パスワードの設定

pgAdmin 4を起動するとパスワードの入力を求められます。初めて起動する際はパスワードの設定を行います。起動するたびに毎回入力を求められますので控えておきましょう。

STEP
データベース作成

左上の「Servers」をダブルクリックして、プルダウンを表示させます。この際に先ほど設定したパスワードを求められる場合があります。

さらに「データベース」を右クリックし、「データベース…」をクリックしてください。

STEP
データベース名の設定

このような画面が表示されます。

「データベース」欄に任意のデータベース名を入力し、右下の「保存」をクリックしましょう。

このように「データベース」直下に、作成したデータベースが追加されます。

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の認証機能を実装するにあたって必要なカスタムユーザーモデルや、データベースを更新するためのマイグレーションについて解説させていただきます。

ご覧いただきありがとうございました!

案件、ありますか?

「メインの仕事があるけれど、週1、2日だけできる仕事ないかな、、、」

「ある程度スキルが身に付いてはきたけど、そのスキルを活用できる場が欲しい」

なんて悩みが以前はありました。

自分で仕事を探しに行くのも大事ですが、蛇の道は蛇。その道の人に頼むことで、自分だけでは見つからないような案件に携わることができます。

IT PRO パートナーズでは、簡単に無料でアカウントを登録でき、さらにはエージェントさんに希望の働き方・案件の種類を提示することでお仕事を紹介してくれます!

登録自体も非常に簡単で、「エージェントさんとの面談を希望する」という欄にチェックをするだけで、エージェントさんから直接連絡をいただくことができます。

驚くほど簡単で正直拍子抜けしてしまいました笑

もしお仕事探しに困っておりましたら、一度登録し案件を眺めてみることをおすすめします!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

勤めていた設計会社を退社し、フリーランスとして活動しています
また、趣味で主にpyhonを用いて機械学習を行なっています!
現在競艇の予測モデルの開発中です。

コメント

コメント一覧 (9件)

コメントする

目次