14 DJango 프로젝트 레이아웃 변경하기

14.1 장고 기본 디렉토리 - 프로젝트 레이아웃

startproject로 생성 했을 경우 위 그림과 같이
디렉토리 구조가 만들어집니다.

프로젝트 레이아웃은 개발자 마다 다르므로
저에게 가장 익숙한 방식으로 변경하겠습니다.

14.2 프로젝트 레이아웃 변경

프로젝트 레이아웃 변경점 1) 셋팅 파일 및 설정 파일이 pythonblog 디렉토리를 config로 변경 2) config 디렉토리 밑에 sttings 디렉토리 생성 3) sttings 디렉토리로 settings.py 이동 4) settings.py 를 base.py로 이름 변경 5) 빈 파일 local.py 생성 5) mysql을 사용할 것이므로 db.sqlite3 파일삭제 6) config 디렉토리와 동일한 레벨로 requirements 디렉토리 생성 7) requirements 디렉토리로 base.txt, local.txt 파일 이동 ※ 12.2 Django 개발환경 패키지 목록 관리 - requirements 에서 사용한 base.txt, local.txt

익숙한 구조로 변경하니 이제 좀 눈이 편해졌습니다.^^

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
#manage.py

def main():
    #os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pythonblog.settings')
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pythonblog.config.settings.base')
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

manage.py파일 내용 중
pythonblog.settings 부분을
pythonblog.config.settings.base' 을 보도록 수정하였습니다.

14.3 Django 구동확인 - No module named 'xxxxx.urls'

python manage.py runserver 로 실행하니

No module named 'xxxxx.urls' 을 찾을 수 없다고 에러 메세지가 나옵니다.

base.py(setting.py) 설정파일로 이동합니다.

1
2
3
4
5
6
7
#base.py

#ROOT_URLCONF = 'pythonblog.urls'
ROOT_URLCONF = 'config.urls'

#WSGI_APPLICATION = 'pythonblog.wsgi.application'
WSGI_APPLICATION = 'config.wsgi.application

config/base.py 파일 내용 중
ROOT URLCONF 와 WSGI_APPLICATION 의
pythonblog 부분을 config 로 변경합니다.

14.4 Django 구동해보기 - 정상확인

잘 구동 되는군요. ^__^