Pythonの日ソースコードの解析を設定する71 Djangoフレームワーク、カスタムのユーザーのエクスポージャーで実現設定ファイルは、それが元の原理に基づいて、ユーザが設定を使用するように設定するには、何も設定はグローバルなデフォルトを使用することではありません

  ## Djangoフレームワーク設定ソースコード解析

= ENVIRONMENT_VARIABLE DJANGO_SETTINGS_MODULE   これは世界的な大きな辞書である
から django.conf インポート設定#1 ステップ1:グローバル設定エントリDjangoのソースを確認し

、クラスの設定(オブジェクト): 第四ステップ
     DEFの __init__(セルフ、settings_module):   #1 BBS.settings 
        #のこの辞書、株式会社無料のアップデートは、設定(しかし、唯一のALL_CAPS設定の)参加
        のために設定してます。dir(global_settingsの)   すべての変数名の中に入るglobal_settingsのファイルを
            IF setting.isupperは():  設定ファイルは大文字のみの変数名を書くことができます
                SETATTR(セルフ、設定、GETATTR(global_settingsの、設定))
        self.SETTINGS_MODULE = settings_module 

        MOD = importlib.import_module(self.SETTINGS_MODULE) 動的インポートモジュール、入ってくる文字列
        BBSインポート設定の
        
         ための設定 DIR(MOD ):  は、ユーザーの名前を変数の設定値にさらされている取得し
            たIF :setting.isupper()
                SETTING_VALUE = GETATTR(MOD、設定)
                SETATTR(セルフ、設定、SETTING_VALUE)  キー辞書の有無を使用して、ユーザーを完了するために、ユーザによって構成されてユーザーは、グローバルに設定されていない

    
クラス LazySettings(LazyObject):#1 ステップ3:チェックどのように実装プロセス
     DEF(セルフ、名前= _Setup なしの):
         「」「
        セッティングモジュールのロードは、これは環境変数での指す
        ユーザーにしていない場合WEは、ATのすべての設定を必要とする最初の時間で使用されている
        の以前の設定を手動で設定します。
        」 " 「
        settings_module = os.environ.get(ENVIRONMENT_VARIABLE)グローバルはos.environ大辞書のキーに対応する値ENVIRONMENT_VARIABLEを取得し、で?見する場所の値
                                                                はos.environ manage.pyファイルの先頭を見ることができます.setdefault( "DJANGO_SETTINGS_MODULE"、 "day72.settings") 
        self._wrapped = 設定(settings_module)

設定 = LazySettingsは()   ステップ2:新しいオブジェクトを作成

 

おすすめ

転載: www.cnblogs.com/liangzhenghong/p/11276782.html