앱(Application)
앱(Application)
은 Django
프로젝트 내에서 사용하는 Python 패키지이다.
하나의 앱은 자신만의 독자적인 모델(Model)
, 템플릿(Template)
, 뷰(View)
를 포함하고 있으며, 일반적으로 하나의 Django
프로젝트는 모듈화된 여러 개의 앱들로 구성된다. 프로젝트를 앱 단위로 모듈화하면 개발 및 유지 보수가 효율적이게 되고, 모듈화된 앱은 다른 프로젝트에서 재활용할 수도 있다.
우리가 만들 Blog
도 하나의 앱이다.
앱 생성하기
이제 본격적으로 블로그 앱을 만들어보자. 앱을 시작하기 위해서는 manage.py
가 있는 폴더에서 아래의 명령어를 사용한다.
python manage.py startapp 앱이름
우리는 블로그 앱을 만드는 것이니, blog
라고 이름지어주자.
./manage.py startapp blog # python manage.py는 ./manage.py로 줄여쓸 수 있다.
디렉토리를 확인해보면 아래와 같이 blog
라는 폴더가 생긴 것을 확인할 수 있다.
myproject # 프로젝트 폴더
├── blog # 앱 폴더
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── config # 설정 폴더
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
앱 등록하기
생성된 파일들은 차차 알아보도록 하고, 일단 만들어진 우리의 blog
앱을 등록시켜야한다.
모든 Django
프로젝트에 대한 설정은 settings.py
에 저장되어있으며, 이 곳에서 현재 Django
프로젝트 내부에서 엑티브 상태인 앱의 목록을 확인할 수 있다. 앱을 만들면 바로 이 곳에 추가하여 엑티브 상태로 만들어주어야 한다.
# settings.py line 33
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
위의 목록을 보면 이미 몇 가지의 앱들이 기본적으로 포함되어 있는 것을 볼 수 있다.
이 앱들은 아래와 같은 기능을 한다.
django.contrib.admin
: 관리자 페이지 제공django.contrib.auth
: 인증 시스템 제공django.contrib.contenttypes
: 컨텐트 타입 프레임워크django.contrib.sessions
: 세션 프레임워크django.contrib.messages
: 메세지 프레임워크django.contrib.staticfiles
: 정적 파일 관리 프레임워크
settings.py
의 INSTALLED_APPS
리스트에 blog
를 아래와 같이 추가시켜준다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # blog 추가
]
Reference
이한영 강사님 강의자료
Djangogirls: https://tutorial.djangogirls.org/ko/
예제로 배우는 Python 프로그래밍: http://pythonstudy.xyz/python/article/305-Django-App