인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

cls님의 프로필 이미지
cls

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

Bootstrap4를 활용한 기본 레이아웃 구현

settings.ALLOWED_HOSTS 이슈 해결 공유

작성

·

368

·

수정됨

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
질문자

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

답변감사합니다. :)

cls님의 프로필 이미지
cls

작성한 질문수

질문하기