Django

[Django 기초] 프로젝트 생성시 자동 생성 파일

dio-han 2021. 12. 2. 23:52

 

$ django-admin startproject mysite

위 명령어는 django 를 이용하여 프로젝트를 시작할 때 사용하는 명령어

 

startproject 이후에 생성되는 파일 tree

 

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

1. Project Root

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

 

  • manage.py 

manage.py는 하나으 Django 프로젝트를 생성하면 자동으로 만들어지는 프로젝트 관리를 위한 명령 유틸리티

Django 앱을 만들거나, 데이터베이스 관련 기능을 수행하거나, 개발 서버를 실행하는 등의 여러기능을 실행할 수 있다.

 

manage.py와 거의 동일한 기능을 하는 것으로 django-admin이 있다. manage.py는 django-admin을 감싸서 구현한 형태로 생성한 프로젝트에 대해 설정을 해주는 몇 가지 기능이 더 들어 있는 것

즉, manage.py가 django-admin의 기능을 포함하면서 몇 가지 설정 기능이 더 있다.

프로젝트를 생성할 대는django-admin을 사용하고 나머지 모든 기능은 manage.py 를 사용하면 된다.

  • mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장
    이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 Python 패키지들을 임포트할 수 있습니다

2. Project App

  • mysite/__init__.py

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

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

  • mysite/settings.py: 

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

  • mysite/urls.py: 

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

Django 프로젝트의 목차라고 할 수 있다.

  • mysite/asgi.py: 프로젝트에 사용할 ASGI 호환 웹 서버의 진입점

 

  • mysite/wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점

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

웹 서버와 Django 어플리케이션을 연결해주는 역할