본문 바로가기

IT 정보

[Django 4] 장고 프로젝트 만들기

* 본포스팅은 <예제로 배우는 Django 4>에서 발췌한 내용으로 작성되었습니다. 

 

 

 

✔ 장고 프로젝트 만들기

첫 번째로 만들어 볼 장고 프로젝트는 블로그 애플리케이션입니다. 블로그용 장고 프로젝트 와 장고 애플리케이션을 만드는 것으로 시작하겠습니다. 그런 다음 모델을 만들고 데이터베 이스와 동기화합니다. 장고는 초기 프로젝트 파일 구조를 생성할 수 있는 명령을 제공하는데, 쉘 프롬프트에서 다음과 같이 실행하면 됩니다. 

 

 

이 명령은 mysite라는 장고 프로젝트를 생성합니다.

* 내장 파이썬 또는 장고 모듈의 이름을 따서 프로젝트 이름을 짓지 마세요. 충돌이 발생합니다.

 

생성된 프로젝트 구조를 살펴보겠습니다.

 

 

외부 mysite/ 디렉터리는 우리 프로젝트의 컨테이너입니다. 여기에는 다음 파일들이 포함되어 있습니다.

 

• manage.py: 프로젝트와 상호작용하는 데 사용되는 커맨드라인 도구입니다. 이 파일을 편집할 필요는 없습니다.
• mysite/: 아래 파일들로 구성된 파이썬 패키지입니다.

- __init__.py: mysite 디렉터리를 파이썬 모듈로 취급하도록 파이썬에 지시하는 빈 파일입니다.
- asgi.py: ASGI 호환 웹 서버와 함께 ASGI(Asynchronous Server Gateway Interface) 애플리케이션으로 프로젝트를 실행하기 위한 구성(configuration)입니다. ASGI는 비동기 웹 서버 및 애플리케이션을 위한 파이썬 표준입니다.

- settings.py: 프로젝트 설정 및 구성을 나타내며 초기 기본 설정을 포함합니다.
- urls.py: URL 패턴이 있는 곳입니다. 여기에 정의된 각 URL은 뷰에 매핑됩니다.
- wsgi.py: WSGI 호환 웹 서버와 함께 WSGI(Web Server Gateway Interface) 애플리케이션으로 프로
젝트를 실행하기 위한 구성입니다.

 

 

 

초기 데이터베이스 마이그레이션 적용하기

장고 애플리케이션에는 대용량 데이터를 위한 데이터베이스가 필요합니다. settings.py 파일에는 프로젝트를 위한 데이터베이스 구성이 DATABASES 설정에 포함되어 있습니다. 기본 구성은 SQLite3 데이터베이스입니다. SQLite는 파이썬 3와 함께 번들로 제공되며 모든 파이썬 애플리케이션에서 사용할 수 있습니다. SQLite는 장고로 개발할 때 함께 사용할 수 있는 경량 데이터베이스입니다. 프로덕션 환경에 애플리케이션을 배포하고자 한다면 PostgreSQL, MySQL 또는 Oracle과 같은 완전한 기능을 갖춘 데이터베이스를 사용해야 합니다. 

https://docs.djangoproject.com/en/4.1/topics/install/#databaseinstallation에서 장고와 함께 데이터베이스를 사용하는 방법에 관한 자세한 정보를 볼 수 있습니다.
settings.py 파일에는 기본적으로 프로젝트에 추가되는 일반 장고 애플리케이션이 포함된 INSTALLED_APPS라는 목록도 포함되어 있습니다. “1.7.3 프로젝트 설정”에서 이러한 애플리케이션들을 살펴보겠습니다.
장고 애플리케이션에는 데이터베이스 테이블에 매핑되는 데이터 모델이 포함되어 있습니다. “1.8 블로그 데이터 모델 만들기”에서 고유 모델을 만들 것입니다. 프로젝트 설정을 완료하려면 INSTALLED_APPS 설정에 포함된 기본 장고 애플리케이션의 모델과 연결된 테이블을 만들어야 합니다. 장고는 데이터베이스 마이그레이션을 관리하는데 도움이 되는 시스템
이 함께 제공됩니다. 쉘 프롬프트를 열고 다음 명령을 실행합니다.

 

 

다음과 같은 메시지들이 출력됩니다.

 

 

이 메시지들은 장고에서 적용한 데이터베이스 마이그레이션입니다. 초기 마이그레이션을 적용하면 INSTALLED_APPS 설정에 열거된 애플리케이션을 위한 테이블들이 데이터베이스에 생성됩니다.

 

 

 

개발 서버 실행하기

장고는 프로덕션 서버를 구성하기 위한 시간을 소비하지 않고도 코드를 빠르게 실행할 수 있는 경량 웹서버와 함께 제공됩니다. 장고 개발 서버를 실행하면 코드의 변경 사항을 지속적으로 확인해서 변경 사항이 자동으로 다시 로드되기 때문에 변경 후 수동으로 다시 로드할 필요가 없습니다. 그러나 프로젝트에 새 파일을 추가하는 것과 같은 일부 작업을 인식하지 못할 수 있는데, 이런 경우 수동으로 다시 시작해야 합니다. 쉘 프롬프트에 다음 명령을 입력해서 개발 서버를 시작합니다.

 

 

다음과 같은 내용이 표시되어야 합니다.

 

 

이제 브라우저에서 http://127.0.0.1:8000/을 엽니다. 아래와 같이 프로젝트가 성공적으로 실행되고 있다는 메시지가 표시되어야 합니다.

 

 

 

위 스크린샷은 장고가 실행 중임을 나타냅니다. 콘솔을 보면 브라우저에 의한 GET 요청을 볼 수 있습니다.

 

 

각 HTTP 요청은 개발 서버에 의해 콘솔에 기록됩니다. 개발 서버를 실행하는 동안 발생하는 모든 오류는 콘솔에도 나타납니다. 다음과 같이 커스텀 호스트 및 포트에서 장고 개발 서버를 실행해서 장고에 특정한 설정 파일을 로드하도록 지시할 수 있습니다.

 

 

* 서로 다른 구성이 필요한 여러 환경을 관리해야 하는 경우, 환경마다 다른 설정 파일을 만들 수 있 습니다.

 

이 서버는 개발 전용이며 프로덕션 용도로는 적합하지 않습니다. 프로덕션 환경에서 장고를 배포하려면 Apache, Gunicorn 또는 uWSGI와 같은 웹 서버를 사용하는 WSGI 애플리케이션으로 실행하거나 Daphne 또는 Uvicorn과 같은 서버를 사용하는 ASGI 애플리케이션 으로 실행해야 합니다.
https://docs.djangoproject.com/en/4.1/howto/deployment/wsgi/에서 다른 웹 서버와 함께 장고를 구성하는 방법에 관한 자세한 정보를 찾을 수 있으며, “17장, 실서비스화”에서는 장고 프로젝트를 위한 프로덕션 환경을 설정하는 방법을 설명합니다.

 

 


 

《예제로 배우는 Django 4》

예스24 / 교보문고 / 알라딘

 

 

반응형