python

[Django] Django 앱 기본 파일 구조

김칠복 2022. 4. 20. 15:25

 Django 앱 기본 파일 구조

Django 프로젝트 내에는 하나 이상의 Django 앱을 생성 및 관리 할 수 있다.

 

Django 앱이란 Django 프로젝트 내에서 어떠한 특정 기능에 따라 구분된 소규모 프로그램 단위로 볼 수 있다.

하나의 프로젝트 내에서 여러개의 앱을 생성하고 관리하며, 또한 같은 기능을 하는 앱을 다른 이름으로 각각 생성하여 관리할 수 있다.

 

Django 프로젝트가 단일 기능만 수행하는 단순한 웹 어플리케이션이라면 별도의 앱을 생성하지 않고 프로젝트 내에서 모든 작업을 수행할 수 있지만, 여러가지 기능을 수행할 경우에는 프로젝트 내에[서 앱을 생성하여 기능 별로 구분하여 관리하는 것이 유지보수 및 확장성 면에서 뛰어나다.

 

Django 앱을 생성하는 방법은 다음과 같으며, 'testapp;이라는 이름으로 신규 앱을 생성한다.

$ python manage.py strartapp <앱명>

testapp을 생성하면 기본 생성되는 파일이 다수 존재한다. Django 프로젝트 설치 시 생성된 파일이 Django 기본 설정을 위한 파일이라면, Django 앱 생성시 생성된 파일 역시 Django 앱 개발에 필요한 파일로 볼 수 있다. 다음은 생성된 파일들로, 한번 살펴보도록 하자.

 

testapp/
        __init__.py
        admin.py
        apps.py
        migration/
        models.py
        tests.py
        views.py
  • testapp/ : Django 앱 생성 시 관리되는 루트 디렉토리로, 앱 관리를 위한 파일을 포함하고 있다.
  • __init__.py : Django 프로젝트 설치 시 생성되는 __init__.py 파일과 동일한 용도로, 현재 이 파일이 위치한 디렉토리가 Python 패키지 디렉토리임을 명시하는 파일이다.
  • admin.py : Django 프로젝트는 자체적을 ㅗ관리자 페이지를 생성 및 관리하는 기능이 있다. 관리자 페이지는 웹 애플리케이션 상에서 관리되고 있는 데이터를 등록, 조회, 삭제 등의 모든 기능을 수행하기 위한 페이지로, admin.py 파일에서는 관리자 페이지에 들어갈 어떤 데이터가 어떻게 들어갈 것인 지에 대한 정보를 포함하고 있다.
  • apps.py: Django 앱에 대한 클래스(Class)  를 선언, 및 정의하는 파일이다. Django 프로젝트 설정파일에서 특정 Django 앱을 사용하고자 할 때, apps.py 파일에서 선언된 클래스명을 사용하면 Django 프로젝트에도 해당 앱을 사용할 수 있다.
  • migrations/ : Django 앱에대한 DB변경 사항 발생 시 이에 대한 정보를 포함한 파일을 포함하고 있는 디렉토리이다. 최초 생성 시에는 __init__.py 파일만 생성되어 있지만, 변경사항이 발생할 대마다 migration 디렉토리에 파일이 하나씩 생성됨에 따라 변경사항에 대한 이력을 관리한다.
  • Models.py : DB에 대한 Model을 정의하는 파일이다. Django 프로젝트 상에 연결되어 있는 DB정보를 토대로 하여, 해당 DB에서 사용하고자 하는 테이블을 정의 및 관리한다.
  • test.py : Django 앱 생성 시 테스트 수행을 위해서 자동 생성되는 파일이다.
  • views.py : Django 앱을 제어하는 View를 정의하는 파일이다. Model 제어 및 Template 요청 사항에 대한 구현을 위한 클래스 및 함수 형태로 구현한다.

 

앱 구현을 위해서 위와 같이 초기에 생성되는 파일도 필요하지만, 웹페이지의 화면상으로 나타나는 template과 이의 주소를 지정하고 관리하기 위한 URL파일도 필요하다. 이들 파일은 초기에 생성되는 것은 아니며, Django 앱 구현 시 추가로 필요하다. 

'python' 카테고리의 다른 글

[Django] Django 파헤치기/기본 파일 구조  (0) 2022.04.20