장고에서 프로젝트는 각각의 독립적인 앱으로 구성되어 있다. 즉, 앱은 각각의 기능을 담고 있는 디렉토리를 말한다.
앱을 생성하기 위해서는
프로젝트 루트 디렉토리
로 이동해야 한다.프로젝트 루트 디렉토리
가 무엇인지 생각나지 않는다면 Django 프로젝트 구조 포스팅을 참고하면 된다.프로젝트 루트 디렉토리
로 이동했다면 아래와 같은 명령어를 입력해 앱을 생성한다.
cd {프로젝트 루트 디렉토리} 📌프로젝트 루트 디렉토리로 이동하는 명령어
python manage.py startapp {앱 이름} 📌앱 디렉토리를 생성하는 명령어
ls 📌앱 디렉토리가 잘 생성되었는지 확인하는 명령어
프로젝트를 생성하는 명령어는
django-admin startproject {프로젝트 이름}
이다. 그렇다면 앱을 생성하는 명령어는django-admin startapp {앱 이름}
일 것 같지만python manage.py startapp {앱 이름}
이다. 혹시 몰라django-admin startapp {앱 이름}
을 입력해봤지만 앱 디렉토리가 생성되는 것을 확인할 수 있다. 두 명령어의 차이는 무엇일까?
결과적으로,
python manage.py startapp {앱 이름}
명령어는 현재 활성화된 Django 프로젝트의 설정을 참조하여 앱을 생성하며,django-admin startapp {앱 이름}
명령어는 프로젝트 설정에 관계없이 독립적으로 앱을 생성한다고 알려져 있다. 일반적으로, 이미 활성화된 프로젝트 내에서 앱을 생성할 때는python manage.py startapp {앱 이름}
명령을 사용하는 것이 좋다고 한다.
결론은
python manage.py startapp {앱 이름}
을 입력하는 것이 좋을 것 같다.
앱을 생성하면
프로젝트 구성 디렉토리
의setting.py
파일에 등록해야 한다.프로젝트 구성 디렉토리
가 무엇인지 생각나지 않는다면 Django 프로젝트 구조 포스팅을 참고하면 된다.
📂ABC
📄manage.py
📄db.sqlite3
📂ABC
📄__init__.py
📄settings.py 📌
📄urls.py
📄wsgi.py
앱을 등록하는 방법은
setting.py
파일에서INSTALLED_APPS
리스트에 생성한 앱 이름을 추가하면 된다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'{앱 이름}',
]