• settings.pyファイルの中身を解説【イメージが大切です】

    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ファイルは最低限の設定なのだな、というイメージを頭に入れておくと良いかもしれません。

    ~Django無料講義~のご案内

    Code for Djangoが、4時間超の無料Django講義をはじめました

    •  ・本を出版したCode for Djangoの
       製作者が作ったサイトです。
    •  ・Code for Djangoの内容も、
       動画で詳しく解説しています。
    •  ・動画は順次ふやしていきますので、
       ただで学び続けることが可能です。
    •  ・Djangoの効率的なスキルアップに、
       是非お役立て下さい。