今回の記事では、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',
'アプリ名',
]
これでインストールは完了です。
次回は簡単なアプリの作成を紹介したいと思います。