【Python】settings.pyを使った設定管理方法をご紹介!

本記事では、Pythonで他の「.pyファイル」を使った設定管理方法についてご紹介していきます。

ファイル名は何でも問題ないのですが、分かりやすくするため本記事では「settings.py」で統一します。

本記事を読む前の前提知識として、下記の記事内容が必要です。

もしインポート方法について分からない・不安な人は、先に下記の記事からご覧ください。

基本的な方法

基本的な方法は非常に簡単で、下記のように「settings.py」をインポートしてその中にある変数を使用するだけです。

import TomoGBlog.settings as tomog

config_val = tomog.config_val

ただし上記の場合、設定項目と設定プリセットが増えるたびに変数を用意する必要があり、汎用性もありません。

そのため、「setting.py」に何かしらのソースコードを追加して使いやすくする必要があります。

より便利にした方法

先ほどご紹介した方法で終わりというのは、かなり不誠実なのでより便利に使えるソースコードをご紹介していきます。

まずはコンフィグ設定を使う側のソースコード、本記事では「main.py」のソースコードはこちらになります。

gist4a49d41650fc58ee4103d7ae55092c92

次に、コンフィグが記載されているソースコード、本記事では「settings.py」はこちらです。

gistb55fa19874a2bccda064133dec1b6ba6

セクションとオプション

まず、変数名にもなっている『section』と『option』ですが、下記のようになっています。

[Key1] ← セクション
value1 = 5 ← オプション
value2 = 2 ← オプション
value3 = 3 ← オプション

[Key2] ← セクション
value1 = 1 ← オプション
value2 = 3 ← オプション
value3 = 4 ← オプション

上記のようになっているため、「セクションキー」と「オプションキー」の2つの鍵が必要です。

ソースコードの説明

ここからは簡単にソースコードについての説明を行っていきます。

ただ、「settings.py」については非常に簡単なコードであるため、説明は割愛させていただきます。

①:ライブラリのリロード

まずソースコードの「1」の部分で、ライブラリのリロードを行っています。

これは「settings.py」を変更しても「main.py」に反映されないエラーの対処法です。

そのため無くても動作しますが、エラー対策のために残しておいた方がいい部分になります。

②:キーの設定や定義

次にソースコードの「2」の部分で、「セクションキー」と「オプションキー」の定義を行っています。

ここの「セクションキー」は、読み込みたい設定キーによって変更するものなので、可変的です。

ただ「オプションキー」は、「settings.py」で定義したものと同じキーにする必要があるためご注意ください。

③:キーを元に設定を読み込む

最後に「settings.py」内にある「init」関数へ呼び出したら、コンフィグの値を取得できるようになっています。

コンフィグの値の取得方法は、ソースコードにある通りです。

オプションキーの存在確認はしていないので注意!

このソースコードでは、「セッションキー」が見つからない場合はデフォルトの値を使用するようになっています。

しかし、「オプションキー」が見つからない場合の対処法については記載していません。

この処理は、「settings.py」内に記載してクラスのように扱うのか、それとも「main.py」でエラー処理するかによって記載方法は変わらうため、あえて入れていません。


本記事の内容は以上となります。

本記事でやっていることは下記の記事とほぼ変わりませんが、使用しているファイル形式が変わるため、自分に合った方を使ってみて下さい。

本記事は以上です。お疲れさまでした。