こんにちは!Masaです。
今回はDjangoでsettings.pyを分割して開発用サーバを起動する方法を解説していきたいと思います!
- Djangoでsettings.pyを開発用と本番用に分けて開発している人
- 「Django開発入門」でPyCharmを使ってない人
- Djangoを勉強している人
settings.pyを分ける必要性は?
今回、自分が「Django開発入門」を見ながら勉強していた時に、設定ファイル(settings.py)を分割するという内容がありました。
settings.pyを分割する理由として、書籍では
- メール送信機能をアプリに付ける
- 開発時はメールの内容をコンソールに表示させる
- 本番運用は実際に送信する
という理由でした。(メール内容をどのように出力するかはsettings.pyに記述します)
書籍内では”PyCharm”という統合環境を使っており、PyCharm内の環境変数を変更することで、runserverを起動する時の読み込む設定ファイル(settings.py)を変更していました。
が、自分はVSCodeを使っていたため、この環境変数の設定がよくわかりませんでした!
なので、よくよく調べてみると、環境変数を設定しなくても設定ファイルを指定して実行できることがわかりましたので解説していきます。
設定ファイルを指定してrunserverを起動する方法
前提として、読み込む設定ファイルをsettings.pyからsettings_dev.pyに変えるとし、プロジェクトフォルダ名(settings.pyが入っているフォルダ)はinventory_controlとします。
以下のように入力して、実行します。
python manage.py runserver --settings inventory_control.settings_dev
内容を説明すると
python manage.py runserver --settings <プロジェクトフォルダ名>.<読み込む設定ファイル(.pyなし)>
となります。
マイグレーションも同じです。
python manage.py makemigrations --settings <プロジェクトフォルダ名>.<読み込む設定ファイル(.pyなし)>
python manage.py migrate --settings <プロジェクトフォルダ名>.<読み込む設定ファイル(.pyなし)>
これで設定ファイルを指定して実行することができます!
まとめ
今回はDjangoにて設定ファイルを分割した際、環境変数設定なしで読み込む方法を解説しました。
設定ファイルを分割する理由としては、開発環境と本番運用環境では出力先を変えるといったことができるからです。
設定ファイルを指定してrunserverを実行するコマンドは、
python manage.py runserver --settings <プロジェクトフォルダ名>.<読み込む設定ファイル(.pyなし)>
となります。
マイグレーションも同じです。
今回使用していた「Django開発入門」もおすすめです。
環境構築からリリースまで全て網羅している一冊で、一通り勉強するとDjango だけでなくWebアプリの仕組みを理解できると思います!
ぜひ参考にしてください!
コメント