#はじめに
Djangoの開発・実装の際に,どうしてもアプリケーションが多くなってしまうことがあります.こんな状態のプロジェクト構成だと設定ファイルを探すときも,ちょっとだけめんどくさいですよね.ディレクトリ名さえ覚えていれば,アルファベット順なわけですし,探せばそりゃ見つかるんです.それでも**「探す作業」自体が嫌いな私はそれすらめんどくさいんですよね…
そこで,この設定ディレクトリが「絶対一番上にある」**っていう状態にしておくことで,探す手間をなくします.かなり簡単な話なので,みなさんも是非使ってみてください.
#結論
設定ディレクトリの名前を「_config」にすることで,このディレクトリが一番上に表示されます.
.
├── _config # プロジェクトの一番上に設定ディレクトリ
├── app1
├── app2
└── app3
実装手順
この記事でお伝えしたことを実際に自分のDjangoプロジェクトに取り入れようと考えてくれる方に向けて,実装手順も載せておきます.
前提
Python3,Djangoはインストール済みであると想定します.バージョンは何でもいいと思いますが,私は以下の環境で実装しました.
Python: 3.8.5
Django: 3.2.8
初めからDjangoのプロジェクトを開発する場合
$ mkdir <projectName>
$ cd <projectName>
$ django-admin startproject _config .
開発中のDjangoプロジェクトに反映する場合
すでに開発しているDjangoプロジェクトがある場合は,元の設定ディレクトリ名(「settingDirName」だとする)を「_config」にしてやる必要があります.
.
└── <settingDirName> → _config
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')
- ROOT_URLCONF = '<settingDirName>.urls'
+ ROOT_URLCONF = '_config.urls'
- WSGI_APPLICATION = '<settingDirName>.wsgi.application'
+ WSGI_APPLICATION = '_config.wsgi.application'
ここからの設定はWSGI・ASGIを活用するなら設定の変更が必要ですが,そうじゃない場合は変更しなくても大丈夫なはずです.
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')
#まとめ
今回の記事の発想は研究室の後輩から教わったものなのですが,こういう少しの手間でできる感じがとても良いなと思いました.冒頭でも言ったように,Djangoプロジェクトの開発をしているとゴチャゴチャしてしまうことがあるので,他の方の記事にもあるようなベストプラクティスを活用したいですね.
※ご意見や疑問点などお待ちしております!
#追記
この記事の内容を応用してDjangoプロジェクト構成の提案をする記事を書きました.
是非合わせてご覧下さい!