2
2

More than 1 year has passed since last update.

【Django】設定ディレクトリをわかりやすく・みつけやすく

Last updated at Posted at 2021-10-25

#はじめに
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
./manage.py
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')
./_config/settings.py
- ROOT_URLCONF = '<settingDirName>.urls'
+ ROOT_URLCONF = '_config.urls'
- WSGI_APPLICATION = '<settingDirName>.wsgi.application'
+ WSGI_APPLICATION = '_config.wsgi.application'

ここからの設定はWSGI・ASGIを活用するなら設定の変更が必要ですが,そうじゃない場合は変更しなくても大丈夫なはずです.

./config/asgi.py
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')
./config/wsgi.py
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<settingDirName>.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', '_config.settings')

#まとめ
今回の記事の発想は研究室の後輩から教わったものなのですが,こういう少しの手間でできる感じがとても良いなと思いました.冒頭でも言ったように,Djangoプロジェクトの開発をしているとゴチャゴチャしてしまうことがあるので,他の方の記事にもあるようなベストプラクティスを活用したいですね.

※ご意見や疑問点などお待ちしております!

#追記
この記事の内容を応用してDjangoプロジェクト構成の提案をする記事を書きました.
是非合わせてご覧下さい!

【Django】プロジェクト構成を「設定」「ユーザ管理」「アプリケーション」の3つに分ける

#参考
Django ベスト・プラクティス
Qiitaの投稿で設定値の変更などの差分を分かりやすく書く方法

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2