반응형
장고 settings파일은 개발단계와 웹 사이트를 배포한 이후에 정보를 다르게 관리해야 한다.
배포단계에서는 secret_key과 debug 상태정보를 수정해야한다. secret_key는 장고 프로젝트가 시작될 때 생성되며 이 키 값이 공개되면 내가 생성한 장고 프로젝트의 보안이 약해질 수 있다고 한다.
...
CONFIG_SECRET_DIR = os.path.join('/var/', '.config_secret')
CONFIG_SECRET_COMMON_FILE = os.path.join(CONFIG_SECRET_DIR, 'settings_common.json')
config_secret_common = json.loads(open(CONFIG_SECRET_COMMON_FILE).read())
SECRET_KEY = config_secret_common['django']['secret_key']
...
DEBUG = False
secret key를 외부 파일로 관리하고 실행 시 파일로부터 secet key를 읽어오도록 수정한다. 리눅스 서버의 /var/.config_secret 폴더를 생성하고 이 폴더에 settings_common.json 파일을 생성한다.
{
"django":
{"secret_key": "django-insecure-???????"}
}
settings_common.jon 파일에는 위와 같이 json구조로 secret_key를 저장한다. 배포용 settings.py 파일은 DEBUG = False로 설정하고 배포시에 사용하는 settings_prod.py에 저장하고 기존 settings.py파일은 개발 시 사용하기 위해 settings_dev.py로 저장한다.
<BEFORE>
settings.py
<AFTER>
settings_dev.py
settings_prod.py
상황에 맞게 settings_***.py를 선택해서 서버를 실행하기 위해서 runserver시 실행할 settings.py를 명시적으로 전달한다. 예를 들어 "ProjectName"폴더에 위치한 settings.dev.py를 실행하는 경우 아래와 같이 명령을 실행한다.
python3 manage.py runserver --settings=ProjectName.settings_dev
반응형
'Programming > Python' 카테고리의 다른 글
Python으로 네이버 주가 가져오기: 간단한 크롤링 가이드 (0) | 2024.03.26 |
---|---|
Python에서 날짜 다루기 - 날짜만 사용하기 (0) | 2024.03.12 |
[Python] Text 파일 읽기/쓰기 (0) | 2022.12.19 |
[Python] google driver 마운트 (0) | 2022.12.19 |
[Python] 샘플 갯수에 따른 Uniform distirbution (0) | 2022.12.16 |