은 내가 응용 프로그램 특정 설정 (DB 연결 문자열, URL 엔드 포인트 등) 및 로깅 구성 구성 구성이어떻게 파이썬에서 설정을 초기화 할 수 있습니까?
파이썬 3에서 응용 프로그램 구성을 초기화하는 방법과 장소에 관해서는 꽤 혼란스러워지고 있어요.
내 응용 프로그램이 의도 한 기능을 수행하기 전에 응용 프로그램을 초기화하고 구성을 로깅하려고합니다.
몇 가지 다른 시도를 한 후에, 결국 아래의 코드와 같은 내용이 내 메인 입력 모듈에 저장되었습니다. 모든 수입품이 화일 (https://www.python.org/dev/peps/pep-0008/#imports)의 정상에 분류되는 좋은 효력이있다, 그러나 구성 모듈이 아주 비 직관적 인 부작용을 위해 수입되고 있기 때문에 바르게 느끼지 않는다.
if not os.path.isdir('.\logs'):
os.makedirs('.\logs')
if os.path.exists('logging_config.json'):
with open(path, 'rt') as f:
config = json.load(f)
logging.config.dictConfig(config)
else:
logging.basicConfig(level=log_level)
파이썬에서 응용 프로그램 구성을 설정하는 일반적인 방법은 무엇입니까 :
_config = {
'DB_URL': None
}
_config['DB_URL'] = _get_db_url()
def db_url():
return _config['DB_URL']
def _get_db_url():
#somehow get the db url
및 config.logging_config
은 다음과 같습니다 다음과 같은
import config.app_config # sets up the app config
import config.logging_config # sets up the logging config
...
if __name__ == "__main__":
...
config.app_config
뭔가를 본다? https://github.com/django/django/blob/master/django/conf/init.py
그것을 : 마음에 베어링은 내가 config.app_config
및 config.logging_config
모듈을 사용하여 각 있지만, 다른 연결 문자열이 아마도 내가 장고 방식의 삭감 버전으로 결국
장고입니까? 그냥 –
아니, Django를 사용하지 않는 것을 확인하고 싶지만, 정말 우아한 (https://github.com/django/blob/master/django/conf/__init__.py) 이래로 그들의 접근 방식을 복사하게되었습니다. 내가 싫어하는 것은 환경 변수를 사용하는 것뿐입니다. – user783836