하나의 웹 사이트로 프로젝트 안에는 여러 개의 앱이 존재한다.
django-admin startproject '프로젝트명' .
프로젝트명 다음에 오는 점 '.'은 현재 디렉터리를 의미한다.
즉, 현재 디렉터리를 기준으로 프로젝트를 생성한다.
기본적으로 project파일과 manage.py가 생긴 것을 확인해 볼 수 있다.
위 이미지에 있는 프로젝트 구조를 한 눈에 보기 쉽게 나타내어 봤다.
Django/
├─ manage.py
└─ project/
├─ __init__.py
├─ asgi.py
├─ settings.py
├─ urls.py
└─ wsgi.py
Django | 사용자가 생성한 폴더 |
project | 사용자가 생성한 django 프로젝트 폴더 |
manage.py | 웹 서버 실행 및 프로젝트 관리 도구로, 다양한 명령어를 실행 가능 |
명령어 : $ python manage.py (command) [options] | |
__init__.py | 현재 폴더가 Python 패키지로 인식하기 위한 파일 |
asgi.py | Asynchronous Server Gateway Interface |
Django 애플리케이션이 비동기식 웹서버와 연결/소통하는 것을 도움 | |
settings.py | Django 프로젝트 설정을 관리 |
urls.py | Django 프로젝트의 URL 패턴을 정의 (경로 및 요청별 기능 등) |
wsgi.py | Web Server Gateway Interface |
Django 애플리케이션이 웹서버와 연결 및 소통하는 것을 도움 |
django-admin startapp '앱 명' .
프로젝트 단독으로는 아무런 것도 만들 수 없다.
프로젝트에 기능을 추가하기 위해 앱을 생성해야한다.
기본적으로 api파일이 생긴 것을 확인해 볼 수 있다.
위 이미지에 있는 앱 구조를 한 눈에 보기 쉽게 나타내어 봤다.
Django/
├─ project/
├─ db.sqlite3
├─ manage.py
└─ api/
├─ __init__.py
├─ admin.py
├─ apps.py
├─ models.py
├─ tests.py
├─ views.py
└─ migrations/
__init__.py | 현재 폴더가 Python 패키지로 인식하기 위한 파일 |
admin.py | 관리자용 페이지 설정 |
apps.py | 앱의 정보 |
models.py | 애플리케이션에서 사용하는 Model을 정의 (Data Base) |
tests.py | 프로젝트의 테스트 코드를 작성하는 곳 |
views.py | 앱의 기능, 로직을 작성 |
기본적인 프로젝트와 앱을 생성하였으면 아래 코드를 통해 서버를 실행할 수 있다.
python manage.py runserver