djagnoでアプリを作った時、settings.pyファイルをいじってみると良いかもしれません。
そこで今回は、settings.pyファイルの中身について理解を深めていきましょう。
なお、ここでは内容のざっくりとした説明にとどめていますので、その点だけご了承いただければと思います。
早速、上から順番にみていきましょう。
os
一番上にimport osと書かれています。
これはpythonのosモジュールです。このosモジュールは非常に多くのメソッドを持っているのですが、Djangoにおいては、ファイルやディレクトリの場所を取り出すときに使われる。と頭に入れておきましょう。
BASE_DIR
BASE_DIRはDjangoのプロジェクトの中で基準となるディレクトリを決めるときに使われます。
Djangoの開発においては、htmlファイルなどを作っていくのですが、そのファイルを保存するディレクトリを指定する時などに、このBASE_DIRが使われます。
BASE_DIRの詳細については、BASE_DIRを分かりやすく解説【これで場所と構造がわかります】という記事を参考にしてください。
SECRET_KEY
SECRET_KEYはdjangoでパスワードを設定するときに使われます。
もう少し具体的な表現としては、Djangoではユーザーが入力したパスワードをそのままデータベースに保存するのではなく、暗号化して保存をするのですが、パスワードを暗号化するときにこのSECRET_KEYが使われます。
開発する上では意識しなくても問題ありません。
DEBUG
DEBUGは、TrueかFalseを指定します
DEBUG = Trueの場合、エラーが出た時にエラーの内容がブラウザに詳しく表示されます。
一方、DEBUG = Falseの場合、エラーが出てもその内容がブラウザに表示されません。
ですので、開発中はDEBUGをTrueにして、公開する場合はDEBUGをFalseにすることが一般的です。
ALLOWED_HOSTS
ALLOWED_HOSTは、Djangoがアクセスを受けるIPアドレスを指定します。
DEBUG = Falseにした場合、ALLOWED_HOSTSの設定をしなければエラーが出てしまいますので注意するようにしましょう。
INSTALLED_APPS
INSTALLED_APPSはインストールしたアプリを書いてあげる必要があります。
イメージとしては、キッチンに新しく設備(オーブンなど)をいれるような感じです。
新しくオーブンを入れたら、それをDjangoに知らせてあげて、ちゃんと機能が増えたことを伝える必要があるのです。
MIDDLEWARE
MIDDLEWAREはリクエストとレスポンスの間に入って何らかの処理をするモジュールを指定しています。
リクエストとレスポンスについて理解を深めたい方は、普通のウェブサイトと、Djangoの違いを解説【具体例で説明します】という記事を参考にしてみて下さい。
例えば、デフォルトではMIDDLEWAREの一番上には'django.middleware.security.SecurityMiddleware'という記載があります。
これはセキュリティに関する処理を行っているのですが、その中の一つとしてhttpsのサイトへのリダイレクトがあります。
これが何かというと、Djangoがリクエストを受けた時、そのurlがhttpの場合にhttpsにリダイレクトするような機能のことです。
(この機能を有効にする場合は別途設定をしなければいけません。)
ROOT_URLCONF
ROOT_URLCONFはdjangoがリクエストを受けた時に、初めに呼び出すファイル名を示しています。
このurlは、djangoでstartprojectをしたときに作成されるurls.pyファイルがデフォルトです。
また、このROOT_URLCONFを変更することはほとんどありません。
TEMPLATES
TEMPLATESは、HTMLファイルを効率的に作るために設定する内容です。
例えば、htmlファイルをが入っている場所を設定したり、それぞれのアプリの中までhtmlファイルをなどがあるかチェックするかを設定したりします。
WSGI_APPLICATION
WSGI_APPLICATIONはウェブサーバーとアプリケーションサーバーを結びつける仲介役のような役割を果たすファイルの場所を示しています。
この変数も基本的に変更することはありません。ただ、ジャンゴではウェブサーバーとアプリケーションサーバーの二つのサーバーが使われるということは頭においておくと良いでしょう。
DATABASE
データベースは、Djangoで使うデータベースの情報が書かれています。
イメージとしては、Djangoがインストールされたサーバーに加えて、データベースシステムがインストールされたデータベースサーバーがあり、このDATABASE変数でデータベースサーバーの場所を示します。
なお、Djangoでは開発用のデータベースサーバーが準備されており、デフォルトではこのサーバーの情報が書かれています。
AUTH_PASSWORD_VALIDATORS
AUTH_PASSWORD_VALIDATORSは、パスワードの強度をチェックするために使われます。
何かのサービスに登録をするとき、「大文字を入れて下さい」であったり、「数字を入れて下さい」といった条件を求められた経験があるかと思いますが、djangoではこのAUT_PASSWORD_VALIDATORSでパスワードの条件の設定をしていきます。
LANGUAGE_CODE~USE_TZ
LANGUAGE_CODEからUSE_TZは何となくイメージがわくのではないかと思いますが、言語の指定をしたり、時間の設定(どの国の時間を使うのか)といった設定をするときに使われます。
STATIC_URL
最後がSTATIC_URLです。これは、cssファイルなどの静的ファイルを呼び出すときに使われます。
細かい設定は、実際に開発を進めていくときに行っていきますので、ここでは静的ファイルの設定もsettings.pyファイルで行うのだな、というイメージを持っていただければよいかと思います。
デフォルトは最低限の設定です
デフォルトで設定されている項目は最低限必要な項目で、これから開発を進めていく中で順次コードを追加していくことになります。
デフォルトのsettinsg.pyファイルは最低限の設定なのだな、というイメージを頭に入れておくと良いかもしれません。