컴퓨터/WEB

[Django] 디장고 디렉터리 구조 살펴보기

정석이 2022. 4. 27. 01:09

 

 

나중에 다시 그려야지.. 키패드 구리다.

 


 

project/ #프로젝트명
    manage.py
    
    project/ # 프로젝트명
        __init__.py
        settings.py
        urls.py
        wsgi.py

 

처음 프로젝트를 startproject를 통해 실행하게 되면 이러한 구조를 가지고 있다.

 

 

Project Root

 

최상위 디렉토리인 프로젝트 명 디렉토리는 Project Root라고 하고 프로젝트의 전체 파일이 들어 있는 디렉토리이다.

 

 

 

manage.py

 

manage.py는 하나의 Django 프로젝트를 생성하면 자동으로 만들어지는 프로젝트 관리를 위한 명령 유틸리티임. Django 앱을 만들거나, 데이터베이스 관련 기능을 수행하거나, 개발 서버를 실행하는 등의 여러기능을 실행 할 수 있음

 


manage.py와 django-admin는 거의 동일한 기능을 하는데.. manage.py는 django-admin을 감싸서 구현한 형태로 생성한 프로젝트에 대해 설정을 해주는 몇 가지 기능이 더 들어있다고 볼 수 있음. 긍까 manage.py가 django-admin의 기능을 포함하면서 몇 가지 설정 기능이 더 있는 것임.

 

 

프로젝트를 생성할 때는 django-admin을 사용하고 나머지 모든 기능은 manage.py를 사용하면 된다.
Django 공식 문서 : https://docs.djangoproject.com/en/2.2/ref/django-admin/

 

 

 

Project (Django Root)

 

Project Root 안에 있는 프로젝트 명(project) 디렉토리는 Django 프로젝트를 위한 여러 파일이 담겨 있는 디렉토리임

 

 

 

 __ init __.py

 

__init__.py 파일이 포함된 디렉토리를 Python의 패키지로 인식하게 하기 위해 사용한다.

python 3.3 이후 버전부터는 이 파일이 없어도 패키지로 인식되지만 하위 버전 호환을 위해 작성해주는게 좋다.

 

 

 

settings.py

 

settings.py 는 Django 프로젝트의 여러 가지 설정을 담고 있는 파일이다.

 

프로젝트에서 사용할 앱들의 경로, db 설정 등의 설정을 할 수 있다.

 

 

urls.py

 

urls.py 는 Django 프로젝트로 들어온 url을 보고 알맞은 로직(View)으로 연결해주는 역할을 하는 파일이다.

urlpatterns 리스트의 항목에 따라 request를 routing한다.

 

 

 

wsgi.py

 

wsgi.py 의 WSGI는 WebServer Gateway Interface의 약자로 파이썬에서 웹 통신을 하기 위한 일종의 약속이다.

걍 웹 서버와 Django 어플리케이션을 연결해주는 역할을 한다는 정도만 알면 될듯.