• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

settings.ALLOWED_HOSTS 이슈 해결 공유

22.12.09 16:01 작성 22.12.09 16:04 수정 조회수 236

0

안녕하세요. 선생님

거만할 수 있지만 해결 방법에 대해서 공유드리는게 좋을것 같아 작성합니다.

settings.__init__.py에

from .common import *

작성하여

python manage.py runserver

하면 제대로 작동하는거 확인되었습니다.

 

스크린샷 2022-12-09 오후 3.54.01.png

이후
<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

정리해보자면, 강의 의도에서는

 

차근차근 확인해보시고, 질문 남겨주세요.

감사드리고, 화이팅입니다. :-)

 

 

 

 

cls님의 프로필

cls

질문자

2022.12.12

섹션8에 내용에 해당 설정부분이 없이 영상이 끝나 확인 못 했습니다.

답변감사합니다. :)