• Home
  • About
    • Che1's Blog photo

      Che1's Blog

      Che1's Dev Blog

    • Learn More
    • Facebook
    • Instagram
    • Github
    • Steam
    • Youtube
  • Posts
    • All Posts
    • Django
    • Python
    • Front-end
    • Algorithm
    • etc
    • All Tags
  • Projects

[Django Tutorial] Blog 만들기 - 3. 앱

30 Sep 2017

Reading time ~2 minutes

앱(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 추가
]

Tutorial 목차

  • [Django Tutorial] Blog 만들기 - 15. 마무리
  • [Django Tutorial] Blog 만들기 - 14. 기능 추가하기
  • [Django Tutorial] Blog 만들기 - 13. 템플릿 상속
  • [Django Tutorial] Blog 만들기 - 12. 자세히 보기 페이지
  • [Django Tutorial] Blog 만들기 - 11. 스테틱 파일
  • [Django Tutorial] Blog 만들기 - 10. 템플릿 언어
  • [Django Tutorial] Blog 만들기 - 9. ORM
  • [Django Tutorial] Blog 만들기 - 8. 템플릿
  • [Django Tutorial] Blog 만들기 - 7. 뷰
  • [Django Tutorial] Blog 만들기 - 6. 관리자 페이지
  • [Django Tutorial] Blog 만들기 - 5. 데이터베이스
  • [Django Tutorial] Blog 만들기 - 4. 모델 생성
  • [Django Tutorial] Blog 만들기 - 3. 앱
  • [Django Tutorial] Blog 만들기 - 2. 프로젝트 시작
  • [Django Tutorial] Blog 만들기 - 1. 환경설정

Reference

이한영 강사님 강의자료
Djangogirls: https://tutorial.djangogirls.org/ko/
예제로 배우는 Python 프로그래밍: http://pythonstudy.xyz/python/article/305-Django-App



DjangoTutorial Share Tweet +1