概要
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 アプリケーションの登録