概要
settings.py
のINSTALLED_APPS
配列でアプリケーションを登録する。
デフォルトの内容
プロジェクト作成直後のsettings.py
におけるINSTALLED_APPS
の内容は以下の通り。コメントはこちらで追記。
1 2 3 4 5 6 7 8 |
INSTALLED_APPS = [ 'django.contrib.admin', // 管理者サイト 'django.contrib.auth', // 認証システム、Userモデル 'django.contrib.contenttypes', // ContentTypeモデル 'django.contrib.sessions', // セッションフレームワーク、Sssionモデル 'django.contrib.messages', // メッセージフレームワーク、 'django.contrib.staticfiles', // 静的ファイルのフレームワーク ] |
アプリケーションの登録
アプリケーション登録のためには、アプリケーション構成クラスを登録するが、書き方には2通りある。登録するアプリケーションをmy_app
とすると、以下の通り。
'my_app.apps.MyAppConfig',
'my_app',
1の書き方は、明示的にアプリケーション構成クラスを書く方法。
manage.py
でアプリケーションを作成するとmy_app
ディレクトリ下にapps.py
ファイルが作成され、アプリケーション構成クラスが定義される。
1 2 3 4 5 6 |
from django.apps import AppConfig class MyAppConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'my_app' |
アプリケーション構成クラス(MyAppConfig
)はAppConfig
を継承している。またアプリケーション名のスネークケースがクラス名ではアッパーキャメルケースになり、Config
が付加されている(モデル・テーブル等の名前を参照)。
2の書き方は、アプリケーションパッケージ名を書く方法。
この場合Djangoはmy_app
パッケージのmy_app/__init__.py
内のdefault_app_config
変数で設定されたアプリケーション構成クラスを使う。
- デフォルト状態で
__init__.py
が空の場合、AppConfig
クラスが使われる __init__.py
にdefault_app_config='my_app.apps.MyAppConfig'
が設定されていれば、apps.py
内のMyAppConfig
が使われる
参考サイト:Django アプリケーションの登録