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 등 웹 애플리케이션 실행 및 관리를 위한 파일로, 이 파일 역시 별도의 작업 없이 서버 구동을 위한 용도로 사용된다.