파이썬의 날 (71) 장고 프레임 워크 설정 소스 코드를 분석, 사용자 정의에 사용자의 노출 설정 파일을 실현 사용하도록 구성 사용자 구성 소스 원칙에 기반, 어떤 구성은 전역 기본값을 사용하지 않습니다

  ## 장고 프레임 워크 설정 소스 코드 분석

= 환경 변수 _ " DJANGO_SETTINGS_MODULE "   #는 이 세계적인 큰 사전이다 
에서 django.conf 가져 오기 설정 #의 1 단계 : 소스 전역 설정 항목 장고 확인 

클래스 : 설정 (객체) # 네 번째 단계
     DEF의  __init__ (자체, settings_module) :   #의 BBS.settings을 
        # 용 은이 DICT에서 업데이트, (주) 무료 (단, 만 ALL_CAPS 설정) 설정에 참여하기 
        위해 설정 에서 디렉토리 (global_settings 일) :   # GET global_settings 모든 변수 이름 내부 파일 
            경우 setting.isupper은 () :   #의 구성 파일은 대문자 변수 이름을 쓸 수 있습니다
                않은 setattr (자동, 설정, getattr (global_settings, 설정)) 
        self.SETTINGS_MODULE = settings_module 

        MOD = importlib.import_module (self.SETTINGS_MODULE) # 동적 수입 모듈, 입력 문자열 
        # 게시판 가져 오기 설정에서 
        
         대한 설정  디렉터리 (MOD :)   #는 사용자의 이름이 변수 구성 설정에 노출하기 
            IF : setting.isupper () 
                setting_value = getattr (MOD, 설정) 
                않은 setattr (자동, 설정, setting_value)   # 존재 또는 키 사전의 부재를 사용하여 사용자를 완료하기 위해 사용자가 구성 사용자는 글로벌로 구성되지 않은 

    
클래스 LazySettings (LazyObject) : #의 3 단계 : 어떻게 구현 프로세스를 확인
     DEF (자기 이름 = _setup 없습니다 없음) :
         "" " 
        . Settings (설정) 모듈의 하중이 환경 변수에 의해 지정된 
        처음에 사용되는에 사용자가되지 않으면 우리는, AT 모든 설정을 필요로 
        의 이전에 설정]을 수동으로 구성. 
        " " " 
        settings_module = os.environ.get은 (환경 변수 _)   #이 환경 변수 _에게 글로벌 os.environ 큰 사전에서 키에 해당하는 값을 얻을, 볼 수있는 위치의 값은?에서 
                                                                # os.environ의 manage.py 파일의 시작을 볼 수있을 것이다 .setdefault ( "DJANGO_SETTINGS_MODULE", "day72.settings") 
        self._wrapped = 설정 (settings_module) 

설정 = LazySettings는 ()    #의 2 단계 : 새로운 객체를 생성

 

추천

출처www.cnblogs.com/liangzhenghong/p/11276782.html