작성자 | 이재영 |
일 시 | 2024. 3. 14 (목) 18:00 ~ 21:00 |
장 소 | 복지관 b128-1호 |
참가자 명단 | 임혜진, 이재영, 성창민, 김명원, 장원준 |
사 진 |
목차
- Django 프로젝트 생성
- Django 프로젝트 구조
- Django 앱 생성
- Django 앱 구조
- 개발 서버 구동 후 웹 사이트 접속
저번 주차에 개발환경 세팅을 완료했다. 이제부터 Django 프로젝트를 생성하여 나만의 웹사이트를 열어볼 것이다.
Django 프로젝트 생성
VScode 터미널에서 다음 명령어를 입력한다.
django-admin startproject "프로젝트명"
이 명령어는 현재 디렉토리에서 "프로젝트명"라는 디렉토리를 생성해준다. 그 후 디렉토리를 확인해보면 또 다른 디렉토리와 Python 파일들이 생성되어 있는 것을 확인할 수 있다.
참고 : 프로젝트를 생성할 때, Python 또는 Django에서 사용 중인 이름은 충돌이 날 가능성이 있어 피해야 한다.
Django 프로젝트 구조
다음은 Django 프로젝트 생성 후 디렉토리 구조이다. (보기 쉽게 프로젝트 이름은 mysite로 하겠다.)
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
이렇게 생성된 파일들은 각각의 역할을 가지게 되는데, 그것은 다음과 같다.
- (최상위)mysite/ : 프로젝트를 담는 공간으로, 이름은 Django 와 아무 상관이 없어 원하는 이름으로 변경해도 된다.
- manage.py : Django 프로젝트와 상호작용하는 커맨드라인의 유틸리티이다. Django 프로젝트마다 자동으로 생성된다.
- mysite/ : 디렉토리 내부에 프로젝트를 위한 실제 Python 패키지들이 저장된다. 이 디렉토리 내의 이름을 이용하여 프로젝트 어디서나 Python 패키지들을 임포트할 수 있다.
- mysite/__init__.py : Python으로 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일이다.
- mysite/settings.py : 생성한 Django 프로젝트의 환경 및 구성을 저장한다. Django 설치의 모든 구성이 포함되어 있다.
- mysite/urls.py : 생성한 Django project의 URL 선언을 저장한다. Django로 작성된 사이트의 "목차"라고 할 수 있다.
- mysite/asgi.py : 생성한 프로젝트를 서비스하기 위한 ASGI 호환 웹 서버의 진입점이다.
- mysite/wsgi.py : 생성한 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점이다.
Django 앱 생성
VScode 터미널에서 다음 명령어를 입력한다.
python manage.py startapp "앱이름"
Django는 '앱'이라는 것을 통해 특정한 기능을 수행하는 웹 어플리케이션을 만들 수 있다. 단위 모듈의 개념으로 이해하면 편하다. 앱은 자신의 모델, 뷰, 템플릿, URL 등을 독자적으로 가지고 있다.
참고 : 프로젝트와 앱의 차이는 규모의 차이이다. 앱은 앞서 설명했던 것처럼 특정한 기능을 수행하는 웹 어플리케이션이고 프로젝트는 그러한 앱을 모아서 관리해주는 것을 말한다. 때문에 한 프로젝트에 앱은 여러 개가 존재할 수 있다.
Django 앱 구조
다음은 Django 앱 생성 후 디렉토리 구조이다. (보기 쉽게 앱 이름은 myapp이라고 하겠다.)
myapp/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
이렇게 생성된 파일들은 각각의 역할을 가지게 되는데, 그것은 다음과 같다.
- myapp/ : 앱을 담는 공간으로 개발자가 지정한 이름으로 디렉토리가 생성된다.
- admin.py : 각각의 앱을 Django의 관리자 기능과 연결하거나 관리자 기능에 대해 설정을 하는 파일이다.
- apps.py : 각각의 앱마다 추가적인 기능 및 설정을 넣어 주는 파일이다.
- migrations/ : 모델에 대한 변경 사항을 데이터베이스 스키마에 전파하는 마이그레이션 관련 파일을 저장하는 디렉토리이다.
- models.py : 앱에서 사용되는 데이터 구조를 정의하고 데이터베이스와의 소통을 담당하는 파일이다.
- tests.py : 앱에 대한 테스트 코드를 작성하는 파일이다.
- views.py : 앱에서 어떤 기능을 할지에 대한 메인 로직을 담당하는 파일이다.
개발 서버 구동 후 웹 사이트 접속
자, 지금까지 Django 프로젝트와 앱을 생성하고 구조를 알아보았다. 이제 Django에 내장되어 있는 개발 서버를 구동해볼 것이다.
VScode 터미널에서 다음 명령어를 입력한다.
python manage.py runserver
명령어를 입력하면 터미널에 뜨는 화면이다. 내용을 보면 빨간 글씨로 다음과 같이 에러 메시지 같은 것이 뜬다.
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions. Run 'python manage.py migrate' to apply them.
이 문제는 migration을 하지 않아서 생기는 문제로 아직은 신경쓰지 않아도 된다.
서버가 실행 되었을 때 웹 브라우저에서 http://127.0.0.1:8000 를 입력해 접속할 수 있다. 처음 프로젝트를 생성하고 접속하면 다음과 같은 페이지가 보일 것이다.
참고 : Django에 포함되어 있는 개발 서버는 운영 환경에서 사용하면 안된다. 개발 서버는 오직 개발 목적으로만 사용해야 한다.
이번 시간에는 Django에 기본 디렉토리 구조에 대해서 알아보고 내장되어 있는 개발 서버를 구동해보았다.
다음 주차에는 이번 주차에서 공부한 구조를 바탕으로 본격적으로 기능 구현을 해볼 것이다.