プログラミング

Djangoでローカル開発用の設定ファイルを適用する方法

今回はDjangoでローカル用の設定を読み込む方法についてご紹介します。

環境のジレンマ

この記事を読んでいる皆さんは、多少なりともDjangoを使ったサーバサイドのシステムを作ったことがある、もしくは作るつもりの人たちだと思います。

開発を行っている際に、

開発環境と本番環境の設定が違いすぎて本番を想定した開発が進まない!

なんてことはありませんでしょうか?

Djangoに関わらず、RailsなどほかのWebフレームワークを使っていても、この問題には必ずぶつかります。

例えば、本番サービスではデータベースのパスワードを設定したいが開発環境のローカルではパスワードなしでも行けるようにしたい。本番サービスではhttpsに対応させるためにセッションをセキュアにしたいが開発環境のローカルではやりたくない。など、、、。

開発にはこのような環境周りの問題が常について回るのです。。

Djangoの特徴

WebフレームワークDjangoの特徴は、今行ったような環境設定などの情報を、settings.pyファイルで一括管理できるということです。

データベースの名前もメールサーバの名前も使われているライブラリの名前もsettings.pyを見ることで一目でわかります。

これはとても便利な特徴なのですが、ここでは開発環境と本番環境などのように環境を指定できる機能がありません。よってDjangoで開発を行う際には、開発を楽に進めるためにローカル環境用の設定ファイルを用意しなければなりません。

やり方

続いて具体的にどうやってDjangoのローカル環境設定ファイルを用意すればいいのかについて説明します。

本番用設定

まず、<app name>/settings.py ファイルが存在していることを確認してください。これがないとそもそもDjangoのシステム自体が動きません。そして、このファイル内に記載する環境設定は、全て本番環境を想定したものにしてください。

具体的には

SESION_SECURE = True

DEBUG = False

 

などを設定するといいと思います。

開発用設定

続いてローカル用の設定ファイルを作成していきます。プロジェクトのルートディレクトリに移動して、local_settings.pyというファイルを作成してください。(manage.pyがあるディレクトリです)

ここには、ローカル向けの設定を記載します。注意事項として、本番環境と共通の部分はここには記載しないでください。この方法は、settings.pyに記載された内容をまず読み込み、ローカル設定のファイルに記載された内容はそれに上書きされるという形をとります。よって、ここにはデフォルトから変更しなくてもいい設定は書く必要がないのです。

具体的には、

SESION_SECURE = False

DEBUG = True

 

などを設定するといいと思います。

起動してみる

それでは、最後に今設定したローカル用のファイルを読み込んで、Djangoのサーバを起動してみましょう。

ローカルの設定を使ってサーバを起動するためには、

通常の

python manage.py runserver

 

コマンドの後に、

—settings=local_settings

 

オプションをつけます。

この方法を使うと実際のコマンドは以下のようになります。

python manage.py runserver —settings=local_settings

 

これでサーバを起動しみてください。ローカルの設定ファイルでちゃんと設定が出来ていれば、Djangoはいつも通り起動されていると思います。

試しに—settingsオプションをつけないでサーバを起動してみてください。何かしらのエラーが出るか、挙動が少しおかしくなるとおもます。

まとめ

以上がDjangoでローカル開発用の設定を適応する方法です。簡単なので開発をうまく進めるためにぜひ活用してみてください。

[kanren postid=”1115″]

こちらの記事ではサーバを動かしている間にバックグラウンドでスクリプトを動かしたい!という場合に便利なhibemindというコマンドを紹介しています。日本ではまだ全然有名じゃない超便利コマンドなのて、こちらの記事もご一読ください!

お仕事決まれば全額キャッシュバック!転職特化型Ruby実践研修【ポテパンキャンプ】
集中的な8週間のマンツーマン訓練で、最先端のAIエンジニアを目指す
受講者満足度も90%以上!【WebCamp】
【WEBCAMP ONLINE】
未経験のITエンジニア転職なら【TECH::EXPERT】
ABOUT ME
gitackt
お金をかけないサバイバル術の記事を書きます。温泉と餃子が好きです。プログラミングが得意です。趣味はメルカリです。