기본 앱을 개발하고 있습니다. 이제 배포 단계에서 로컬 설정과 프로덕션 설정이 모두 필요하다는 것이 분명해졌습니다.
다음을 아는 것이 좋습니다.
해결 방법
따라서 각 환경에 대해 별도의 구성 파일을 만들고 (물론 별도의 "공유 설정"파일에서 import *
둘 다 가능) DJANGO_SETTINGS_MODULE
을 사용하여 어느 것을 사용할지.
방법은 다음과 같습니다.
Django 문서에서 언급했듯이 :
DJANGO_SETTINGS_MODULE의 값은 Python 경로 구문이어야합니다. mysite.settings. 설정 모듈은 Python 가져 오기 검색 경로에 있어야합니다.
따라서 소스 저장소에 myapp / production_settings.py
및 myapp / test_settings.py
를 만들었다 고 가정 해 보겠습니다.
이 경우 전자를 사용하려면 DJANGO_SETTINGS_MODULE = myapp.production_settings
를 설정하고 후자를 사용하려면 DJANGO_SETTINGS_MODULE = myapp.test_settings
를 설정합니다.
여기서부터 문제는 DJANGO_SETTINGS_MODULE
환경 변수 설정으로 귀결됩니다.
그런 다음 부트 스트랩 스크립트 또는 프로세스 관리자를 사용하여 환경을 설정하여 올바른 설정을로드하거나 Django를 시작하기 전에 쉘에서 실행할 수 있습니다. export DJANGO_SETTINGS_MODULE = myapp.production_settings
.
이 내보내기는 쉘에서 언제든지 실행할 수 있습니다. .bashrc
또는 다른 곳에있을 필요는 없습니다.
환경을 설정하는 부트 스트랩 스크립트를 작성하는 것을 좋아하지 않는다면 (그리고 그렇게 느끼는 데에는 매우 좋은 이유가 있습니다!) 프로세스 관리자를 사용하는 것이 좋습니다.
마지막으로, PYTHONPATH
변수를 활용하여 완전히 다른 위치 (예 : 프로덕션 서버에서 / etc에 저장)에 설정을 저장할 수 있습니다 수 있습니다. /
). 이를 통해 애플리케이션 파일에서 구성을 분리 할 수 있습니다. 원할 수도 있고 원하지 않을 수도 있으며 앱의 구조에 따라 다릅니다.
참조 페이지 https://stackoverflow.com/questions/10664244
'파이썬' 카테고리의 다른 글
파이썬 시간 문자열을 초로 변환하는 방법은 무엇입니까? (0) | 2021.02.16 |
---|---|
파이썬 Python을 사용하여 iOS 및 Android 용 크로스 플랫폼 앱을 작성할 수 있습니까? (0) | 2021.02.16 |
파이썬 Python의 for 루프에서 목록 요소를 제거하는 방법은 무엇입니까? (0) | 2021.02.16 |
파이썬 목록의 모든 요소가 조건과 일치하는지 확인하는 방법은 무엇입니까? (0) | 2021.02.16 |
파이썬은 재귀를 사용하지 않고 숫자 집합을 제외하는 난수를 생성 할 수 있습니까? (0) | 2021.02.16 |
댓글