非エンジニアのスタートアップ 0 年生 ( 5. Django で開発 - その 2 )

こんにちは、株式会社ピケでサーバサイドエンジニアをしている古内です。

こちらの記事は【 5. Django で開発 - その 2 】になります。

1. サービス開発に必要なこと
2. HTML、CSS、JavaScript の基本
3. Python の基本
4. Docker の基本
5. Django で開発 ( 本記事 )
6. GCP にデプロイ

目次

1. この記事について
2. Django の設定
3. 管理画面の準備
4. まとめ


1. この記事について

今回の記事では Django にデータベースを接続したり、データベースを管理する画面を準備します。

この作業は簡易版 Facebook を作ることに限らず、他のものを作るときにも行う作業です。


2. Django の設定

まずは、Django の設定です。

Django の設定には様々なものがあり、今回はデータベースの接続とドメインの設定を行います。

ドメインとは https://note.mu/furuchin という URL があったときに note.mu の部分を指します。

web/myfacebook/myfacebook/settings.py ファイルを開きます。

この設定ファイルを開いて以下の部分を変更します。

ALLOWED_HOSTS = []

このコードを以下に変更します。

ALLOWED_HOSTS = ['*']

この設定はすべてのドメインを許可するという意味になります。

とりあえずはこの設定で大丈夫です。

続いて以下の部分を変更します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

このコードを以下に変更します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'root',
        'PORT': '3306',
        'OPTIONS': {'charset': 'utf8mb4'},
        'CONN_MAX_AGE': 300
    }
}

# 本番環境設定
if DEBUG is False:
    DATABASES['default']['HOST'] = ''
    DATABASES['default']['NAME'] = ''
    DATABASES['default']['PASSWORD'] = ''

# 開発環境設定
else:
    DATABASES['default']['HOST'] = 'db'
    DATABASES['default']['NAME'] = 'dev_myfacebook_db'
    DATABASES['default']['PASSWORD'] = 'dev_myfacebook_pw'

このコードはデータベースの設定をしています。

一つ一つ上から解説します。

'ENGINE': 'django.db.backends.mysql' はデータベースの種類の設定です。

'USER': 'root' はデータベースに接続するためのユーザーの設定です。

'PORT': '3306' は接続するポートの設定です。

'OPTIONS': {'charset': 'utf8mb4'} はデータベースで行っている設定です。

'CONN_MAX_AGE': 300 はデータベースに何秒間データベースの接続を維持するかの設定です。

続いて本番環境部分を飛ばして開発環境設定の設定の解説です。

DATABASES['default']['HOST'] = 'db' はデータベースのホスト名の設定です。

DATABASES['default']['NAME'] = 'dev_myfacebook_db' はデータベース名の設定です。

DATABASES['default']['PASSWORD'] = 'dev_myfacebook_pw' はデータベースのパスワードの設定です。

本番環境はまだ用意していないので後で大丈夫です。

DATABASES = { ... } の部分は簡易版 Facebook 以外でもこの様な内容の設定になります。

「# 開発環境」のコメント部分の設定はプロジェクトごとに変わります。

また、PORT、HOST、NAME、PASSWORD、は docker-compose.yml に書いてある項目と同じ内容です。

docker-compose.yml の中に同じ文字列の設定があることを確認してみてください。

続いて以下の部分を変更します。

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

このコードを以下に変更します。

LANGUAGE_CODE = 'ja-jp'

TIME_ZONE = 'Asia/Tokyo'

この設定は言語や時間を日本に設定しています。


3. 管理画面の準備

まずは以下のコマンドを実行してください。

docker-compose exec web bash

このコマンドは Django が動いている Docker を操作をするためのコマンドです。

続いて以下のコマンドでディレクトリを移動します。

cd myfacebook/

ディレクトリを移動したら以下のコマンドを実行してください。

python manage.py migrate

このコマンドは Django が最初から備えているユーザー機能をMySQL に反映しています。

実行すると以下の様な文字が表示されます。

Operationstoperform:
  Applyallmigrations:admin,auth,contenttypes,sessions
Runningmigrations:
  Applyingcontenttypes.0001_initial...OK
  Applyingauth.0001_initial...OK
  Applyingadmin.0001_initial...OK
  Applyingadmin.0002_logentry_remove_auto_add...OK
  Applyingcontenttypes.0002_remove_content_type_name...OK
  Applyingauth.0002_alter_permission_name_max_length...OK
  Applyingauth.0003_alter_user_email_max_length...OK
  Applyingauth.0004_alter_user_username_opts...OK
  Applyingauth.0005_alter_user_last_login_null...OK
  Applyingauth.0006_require_contenttypes_0002...OK
  Applyingauth.0007_alter_validators_add_error_messages...OK
  Applyingauth.0008_alter_user_username_max_length...OK
  Applyingauth.0009_alter_user_last_name_max_length...OK
  Applyingsessions.0001_initial...OK

この作業のことをマイグレーションと呼びます。

マイグレーションとはデータベース構造を変更する作業のことです。
今後の記事でも何回か行われます。

反映が完了したら管理画面用ユーザーを作ります。

作り方は以下のコマンドです。

python manage.py createsuperuser

このコマンドを実行すると最初に

Username (leave blank to use 'root'):

と表示され、ユーザー名の入力を求められます。

今回は admin というユーザー名で設定します。

続いて

Email address:

と表示され、メールアドレスの入力を求められます。

今回は特に入力せず Enter キーを押してしまって大丈夫です。( 未設定 )

続いて

Password:

と表示され、パスワードの入力を求められます。

今回は myfacebook というパスワードで設定します。
( 文字を打ってもセキュリティのために文字は画面に移りません )

続いて

Password (again):

と表示され、もう一度同じパスワードの入力を求められます。

最後に

Superuser created successfully.

が表示されたら管理画面用ユーザーの作成完了です。

ブラウザで http://localhost:8000/admin にアクセスしてみてください。

以下の画像のような画面が表示されます。

ユーザー名 admin
パスワード myfacebook

でログインできます。

( これらは先程の管理画面用ユーザー作成時に設定したものです )

ログインすると以下の様な画像の画面が表示されます。


4. まとめ

今回の記事は基本的な Django アプリケーションの準備でした。

この内容は簡易版 Facebook を作るとき以外もやることです。

次回から本格的に簡易版 Facebook のコードを書いていきます。


=======================================
PR
古内開発教室始めてみました!
この記事読んだけどもうちょっと知りたい!
自分ひとりだと心細い!
そういった方がいましたらぜひこちらを見てください!
古内開発教室
=======================================


次の記事 5. Django で開発 - その 3 ←開発中
前の記事 5. Django で開発 - その 1



この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

5

furuuchi

株式会社ピケ サーバサイドエンジニア Frasco - https://frasco.io/ Matey - https://matey.jp/ Dish - https://apple.co/2uNBV4Q

test1

コメント1件

Django で開発 - その 3
お待ちしています。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。