작성
·
368
·
수정됨
0
안녕하세요. 선생님
거만할 수 있지만 해결 방법에 대해서 공유드리는게 좋을것 같아 작성합니다.
settings.__init__.py에
from .common import *
작성하여
python manage.py runserver
하면 제대로 작동하는거 확인되었습니다.
이후
<dev>
python manage.py runserver --setting=askcompany.setting.dev
<prod>
python manage.py runserver --setting=askcompany.setting.prod
각각 환경에 맞는 파일을 가져오는거 확인되었습니다.
답변 1
1
안녕하세요. 이렇게 공유해주셔서 감사드립니다. :-)
공유해주신 이슈는 장고 프로젝트가 인지하는 settings 경로와 실제 settings 경로가 달라서, 실제 settings 내의 ALLOWED_HOSTS 설정이 활용되지 못해서, ALLOWED_HOSTS 관련 오류가 발생핫셨을 것으로 예상됩니다.
askcompany/settings.py 를 askcompany/settings/dev.py 와 askcompany/settings/prod.py 로 분리한 의도는
개발 시에는 askcompany/settings/dev.py 를 참조할려는 의도이고
배포 시에는 askcompany/settings/prod.py 를 참조할려는 의도였습니다.
python manage.py 명령은 개발 시에 주로 사용하게 될 것이구요. 그러니 manage.py 에서는 askcompany/settings/dev.py 를 디폴트로 사용하게 하면 좀 더 편리하게 개발을 할 수 있을 것입니다.
장고에서는 settings 경로는 DJANGO_SETTINGS_MODULE 환경변수를 통해 지정받습니다.
manage.py 파일에 보시면 DJANGO_SETTINGS_MODULE 환경변수에 대한 디폴트 값을 지정하는 부분이 있구요.
askcompany/wsgi 파일에도 동일하게 있습니다.
manage.py 내의 DJANGO_SETTINGS_MODULE 환경변수에 대한 디폴트 값이 아마도 "askcompany.settings" 이셨을 것입니다. 이 경우
askcompany/settings.py 파일이 있다면 참조할 것이고
askcompany/settings/ 폴더라면 askcompany/settings/__init__.py 파일을 참조하게 됩니다.
그런데 askcompany/settings/__init__.py 파일이 없거나 빈 파일이셨을 테구요. 그러니 말씀하신 조치로 오류가 없어지긴 하셨을 것입니다.
하지만 위에서 말씀드린 의도대로라면, manage.py 내 DJANGO_SETTINGS_MODULE 환경변수의 디폴트 값을 "askcompany.settings.dev" 로 지정하는 것이 제 의도에 맞습니다. 강의에서도 그렇게 안내드리고 있습니다.
관련 소스 코드 : https://github.com/askcompany-kr/django-with-react-rev2/blob/master/manage.py#L8
정리해보자면, 강의 의도에서는
askcompany/settings/dev.py 등을 두시고
manage.py 내의 DJANGO_SETTINGS_MODULE 디폴트 값은 "askcompany.settings.dev"로 두시고,
askcompany/wsgi.py 내의 DJANGO_SETTINGS_MODULE 디폴트 값은 "askcompany.settings.prod" 로 두시는 것입니다.
차근차근 확인해보시고, 질문 남겨주세요.
감사드리고, 화이팅입니다. :-)
섹션8에 내용에 해당 설정부분이 없이 영상이 끝나 확인 못 했습니다.
답변감사합니다. :)