Djangoでデータベースを利用する際には、いくつかチェックしておくことがあります。それは「利用するデータベースの設定」「モデルの定義」「マイグレーション」といったものです。
まず、データベースの設定から説明しましょう。Djangoでは、プロジェクト名のフォルダ(ここではプロジェクトフォルダ内にある「djangoapp」フォルダ)の中に設定情報をまとめた「
settings.py」というファイルが用意されています。利用するデータベースの設定も、この中に記述されています。
データベースの設定は、「
DATABASES」という値として用意されています。デフォルトでは、以下のような内容が記述されているでしょう。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
これがデータベース設定です。
ENGINEには、使用するデータベースエンジンのクラスを指定します。これは
django.db.backends.sqlite3 という値が設定されていますが、これがSQLite3のデータベースエンジンになります。
NAMEにデータベース名(SQLiteの場合はデータベースファイルのパス)を指定します。ここでは、
os.path.joinというものを使っていますが、これは指定したディレクトリやファイル名をつなぎ合わせて1つのパスにまとめるためのものです。
BASE_DIRはこのプロジェクトフォルダのパスであり、そこにある
db.sqlite3のファイルパスをこれで作成していたのですね。
この2つの設定で、SQLite3によるデータベース利用が行えるようになっています。SQLite3の場合、
ENGINEと
NAMEだけあればもうデータベースが使えるようになるのです。
■INSTALLED_APPSもチェック!
この他、
INSTALLED_APPSについてもチェックしておく必要があるでしょう。おそらく
INSTALLED_APPSは以下のようになっているはずです。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello.apps.HelloConfig',
]
先に、
hello.apps.HelloConfigを追加しましたね。これが重要です。この記述がないと、この後で行うマイグレーションなどでhelloアプリが認識されなくなります。
また、その他の値も削除はしないで下さい。これらは、データベースを利用する上で必要となるアプリです。これらの一部が削除されていると正しくデータベースの処理が行えなくなります。
※データベースの設定
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
※インストールアプリの設定
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'hello.apps.HelloConfig',
]