[Django] インストール後にやるべきsettings.pyの設定。settings.pyを徹底解説

今回の記事では、Djangoでプロジェクト作成後にやっておきたい初期設定について紹介したいと思います。

各バージョンは以下になります。

  • python3
  • django3

※今回の手順ではPython3が前提となりますのでご注意ください。

目次

データベースの設定

DjangoはDjango説明の章で説明したとおりフルスタックフレームワークです。

フルスタックフレームワークでは勿論データベースを扱いますので、まずはデータベースの設定を行いましょう。

データベースの設定は以下のsettings.pyファイルで設定します。

プロジェクト名
  /プロジェクト名
  /settings.py

settings.pyファイルの内容を確認してみましょう。

データベースの設定は、DATABASESセクションで制御します。

なお、DjangoのデフォルトのデータベースはSQLiteになっています。

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

デフォルトではSQLiteを利用しますが、MySQLやPostgreSQLももちろん使用することが出来ます。

その他のデータベースを使う場合は、以下の様に設定します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.データベース(mysql,postgresqlなど)',
        'NAME': データベース名(mysql,postgresqlの中のデータベース名),
        'USER': 利用者名,
        'PASSWORD':パスワード,
        'HOST':ホスト名,
        'PORT':ポート,
    }
}

これで設定は完了します。設定後migrateすれば設定完了です。

では実際に試してみましょう。

今回はMySQLで設定してみましょう。

DjangoとMySQLを連携するにはmysqlclientをインストールする必要がございます。

インストール方法は以下になります。

pip install mysqlclient

サンプルフォルダは以下になります。

mysite/
  manage.py
  mysite/
    __init__.py
    settings.py
    urls.py
    asgi.py
    wsgi.py

この中のsettings.pyを開いて以下の様にします。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite_sample',
        'USER': root,
        'PASSWORD':パスワード,
    }
}

その後設定をはデータベースに反映させる必要があります。

設定完了後mysiteディレクトリの下で以下のコマンドを打ちます。

python manage.py migrate

データベースに設定を反映するについての説明はモデルを紹介する時に一緒に説明します。

モデルもこのコマンドを使うので、反映方法は是非覚えましょう。

そしてデータベースを見てみましょう!

+--------------------------------+
| Tables_in_mysite_sample        |
+--------------------------------+
| auth_group                             |
| auth_group_permissions        |
| auth_permission                     |
| auth_user                                |
| auth_user_groups                   |
| auth_user_user_permissions   |
| django_admin_log                  |
| django_content_type              |
| django_migrations                  |
| django_session                       |
+--------------------------------+
10 rows in set (0.00 sec)

これでデータベースの設定が完了です。

Timezoneの設定

次に時刻の設定であるTimezoneの設定をします。

Timezoneの設定ファイルもDB設定と同じファイルでsettings.pyでございます。

設定する場所はTIME_ZONEとUSE_TZでございます。

デフォルトは以下の様にUTC(協定世界時)なっております。

TIME_ZONE = 'UTC'

USE_TZ = True

日本時間に変更するには以下の様に変更します。

TIME_ZONE = 'Asia/Tokyo'

USE_TZ = True

これで設定は完了です。

では、実際に確かめてみましょう。

まずはPythonを起動します。

python

すると以下の様になります。

Python 3.6.8 (default, Aug 7 2019, 17:28:10)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
Type help, copyright, credits or license for more information.
>>

以下のコードを実行してみましょう。

from django.utils import timezone
import os

os.environ.setdefault(DJANGO_SETTINGS_MODULE, mysite.settings)
print(timezone.localtime(timezone.now()))

すると

2020-06-18 15:24:35.311468+09:00

と出力され、設定が反映されたことが確認できます。 これでTimezoneの設定完了です。

別アプリのインストール

簡単なテキスト表示などはインストール必要することはありませんが、別アプリを作る場合はインストールしなければ使用できません。

今回は簡易的にインストールする方法を紹介します。
※ アプリのインストールを解説する際に改めて紹介します

やり方は簡単でsetting.pyを開き、INSTALLED_APPSにアプリを追加します。

追加前:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

追加後:

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'アプリ名',
]

これでインストールは完了です。

次回は簡単なアプリの作成を紹介したいと思います。

  • システム開発、アプリ開発
  • マッチングアプリ開発
  • インフラ構築支援等、なんでもご相談ください。
よかったらシェアしてね!
  • URLをコピーしました!
目次