Django로 만들어진 앱의 기본 세팅을 담당한다.
settings.py
: DB 정보, 설치된 앱, 미들웨어 등의 기본적인 설정 정보urls.py
: 프로젝트의 URL(주소) 패턴이다. 요청과 응답을 처리하는 views(뷰)와 대응wsgi.py
: 웹 서버에 배포하기 위해 사용하는 파일__init__.py
: 이 파일이 존재하는 폴더(디렉토리)가 패키지로 처리됨을 명시프로젝트를 관리할 때 사용되는 커맨드 라인 인터페이스이다. 이 파일로 DB 마이그레이션, 앱 서버 실행등의 작업을 수행 가능하다. 프로젝트 폴더의 루트 디렉토리에 위치한다.
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
python manage.py startapp
python manage.py createsuperuser
프로젝트 하위 디렉토리 중 하나로, 각 앱이 위치하는 폴더이다. app 단위로 하위 폴더 구조를 가지며, 각 앱의 구조는 독립적이지만 Django에서는 앱이 유기적으로 연결된다.
models.py
: DB 모델을 정의하는 파일. DB의 테이블과 같음views.py
: HTTP요청을 처리하는 view함수를 포함하는 파일. 요청을 처리하고 DB에서 데이터를 검색하거나 템플릿을 랜더링하여 결과를 반환하는 역할urls.py
: 앱의 URL 패턴 정의. HTTP 요청을 처리하는 view
함수와 연결admin.py
: 앱의 모델을 관리하는 관리자 페이지 정의 파일. test.py
: 앱의 유닛 테스트를 정의. 기능을 검증하고, 버그를 차장 수정 가능DB의 스키마 변경 내역을 추적하는 도구이다. 나중에 다시 보겠지만 스키마는 DB에 어떤 데이터가 저장되고, 그 데이터들이 어떻게 서로 관련되어 있는지를 설명하는 표현이다.
HTML 템플릿 파일을 저장하는 공간이다. 프로젝트 전체에서 사용할 수 있는 템플릿 폴더를 만들 수 있고, 각 앱별로 사용할 템플릿 폴더를 만들수도 있다.
정적 파일(CSS, JS, 이미지)들을 저장하는 공간이다. 프로젝트 전체에서 사용할 수 있고 각 앱별로 사용할 폴더도 만들 수 있다.
사용자가 앱에 업로드한 파일들을 저장하는 공간이다. Django 자체는 업로드 파일 자체를 서빙하는 기능을 제공하진 않는다. 따라서 웹 서버나 뷰 함수를 이용해서 서빙해야 한다.
파이썬 가상환경을 사용하는 경우에 존재한다. 아나콘다의 경우에는 해당되지 않는다.