python

[Django] Django 파헤치기/기본 파일 구조

김칠복 2022. 4. 20. 14:49

django 알아보기

django는 Python 웹 개발을 위한 대표적인 오픈소스 프레임워크이다.

MTV(Model-Template-View) 모델 기반의 웹사이트 구축을 지향하고, 속도와 확장성, 그리고 범용성이 뛰어나다.

최근에는 많은 기업에서도 Django를 활용한 웹사이트를 구축하는 추세이다.

django의 각 버전은 호환되는 python 버전이 정해져 있으며, 이는 다음과 같다.

 

대표 호환 Django 버전
python ver 1.6 1.7 1.8 1.9 1.10 1.11 2.0 2.1 2.2
2.7                                                                   
3.4                                                                             
3.5                                                                                       
3.6                                                

 

알맞은 개발환경을 인스톨하고, 장고 프로젝트 시작을 위한 코드를 입력해보자.

$django-admin startproject <프로젝트명>

Django 프로젝트 기본 파일 구조

위의 코드를 실행하면 다음과 같은 디렉토리구조가 생성된다.

test_project/
     test_project/
                __pychace__/
                __init__.py
                settings.py
                urls.py
                wsgi.py
    db.sqlite3
    manage.py
  • test_project/ : Django 프로젝트 생성 시 Project 파일이 포함된 디렉토리로, 프로젝트 파일을 보관 이외의 용도로는 사용되지 않는다.
  • test_project/test_project/ : Django 프로젝트 수행을 위한 패키지가 저장된 디렉토리이다. 이 디렉토리는 매우 중요하므로. 기본 생성된 파일은 매우 중요하다.
  • test_project/test_project/__pycache__/ : Django 프로젝트 생성 시 만들어지는 디렉토리는 아니며, 초기에 migrate 명령을 수행시 생성된다.  이 디렉토리는 Pytrhon3 형태로 프로젝트 구동을 위한 컴파일된 파일이 포함되어 있으며, 디렉토리 내의 파일은 없어도 정상적인 실행이 가능하나 성능이 저하될 수 있으므로 지우지 않고 보존하는 것을 권장한다.
  • __init__.py : Django 프로젝트에서 현재 __init__.py 파일이 위차한 디렉토리가 Python 패키지 디렉토리임을 명시하는 파일이다. 프로젝트 root 디렉토리에 __init.py__.py 파일이 존재함으로써 이 파일과 같은 위치에 있는 다른 파일들 에서도 'import' 명령어를 사용하여 패키지형태로 즉시 불러올 수 있다.
  • settings.py : Django 프로젝트 상의 모든 환경설정을 관리하는 파일로, 프로젝트에서 가장 큰 비중을 차지하는 파일이다.
  • urls.py : Django 프로젝트의 URL을 관리하는 파일이다. 추가 앱 생성 시 앱 별로 URL을 지정할 수는 있지만, 프로젝트 root 디렉토리의 urls.py 파일에서 include 시켜야만 URL을 지정한다는 점에서 이 파일은 웹 브라우저 상에서 관리되는 모든 URL을 관리하는 파일로 볼 수 있다.
  • wsgi.py : Django 프로젝트의 웹서비스를 위한 호환규격(Web Server Gateway Interface)을 명시한 파일이다. 이 파일은 별도로 작업하는 데 사용되지는 않지만, 웹 애플리케이션 가동을 위해서는 반드시 필요한 파일이다.
  • db.sqlite.3 : Django는 처음 설치되었을 때 SQLite DB를 사용한다. 해당 DB와의 연계를 위해 사용하는 파일이다.
  • manage.py : 웹 서버 실행, DB Model 적용을 위한 Migration 등 웹 애플리케이션 실행 및 관리를 위한 파일로, 이 파일 역시 별도의 작업 없이 서버 구동을 위한 용도로 사용된다.