[Django 기초] 프로젝트 생성시 자동 생성 파일
$ 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 어플리케이션을 연결해주는 역할