1. 가상환경 생성1.1. 파이썬 설치 확인1.2. venv 모듈을 통해 가상 환경 생성1.3. 가상환경 실행2. django 프로젝트 생성2.1. django 패키지 설치2.2. django 프로젝트 생성2.3. django 프로젝트 실행2.4. 앱 생성
1. 가상환경 생성
가상환경
을 왜 만들어야 할까요?
예를 들어 A 프로젝트에서는 python 2 버전이 필요하고, B 프로젝트에서 python 3 버전이 필요하다면 버전이 충돌하는 문제가 발생합니다.
가상환경
을 통해 독립적인 환경을 만들어 주고, 여기서 python뿐만 아니라 다른 다양한 패키지들을 설치하여 각 프로젝트들을 관리할 수 있게 됩니다.1.1. 파이썬 설치 확인
구름IDE에서 컨테이너 생성 시 '소프트웨어 스택'을
python
으로 선택해서 생성했다면, 기본적으로 python 3.x 버전이 설치가 되어 있습니다. 터미널에 python -V
또는 python --version
명령어를 통해 python이 설치되었는지와 동시에 버전을 확인 할 수 있습니다.root@goorm:/workspace/MBIT# python -V Python 3.7.4
1.2. venv 모듈을 통해 가상 환경 생성
python 3 버전에서는 python 가상환경을 생성할 수 있는
venv
모듈이 기본으로 내장되어 있습니다.python -m venv [가상환경이름]
명령어를 통해 가상 환경을 생성합니다.root@goorm:/workspace/MBIT# python -m venv venv
가상환경을 생성하면 다음 사진과 같이 해당 이름의 가상환경 폴더가 생성됩니다.

1.3. 가상환경 실행
다음 명령어를 통해 가상환경을 실행합니다.
$ source venv/bin/activate
그러면 명령줄 앞에 가상환경의 이름이 붙게 됩니다.

가상환경이 잘 실행되고 있는지 확인하려면
pip list
명령어를 사용할 수 있습니다. pip list
명령어는 현재 실행되고 있는 환경에 설치된 python 모듈들의 리스트를 보여주는데, 다음 사진에서 처럼 글로벌 환경일 때와 가상 환경일 때 pip list
의 결과가 다른 것을 확인할 수 있습니다.

pip
사용 중 다음과 같은 경고 메시지가 출력될 수도 있는데, 해당 메시지는 python 패키지 관리를 하는 pip
의 버전에 대한 경고 메시지입니다. 해당 메시지는 무시해도 무방합니다. 말 그대로 에러가 아닌 경고입니다.
You are using pip version 19.0.3, however version 20.3.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
2. django 프로젝트 생성
Django 업데이트 로드맵입니다. 현재 Django는 3.x를 쓰는 것이 일반적이며, 저희 책에서는 3.1 Version을 사용하여 기술하도록 하겠습니다.



2.1. django 패키지 설치
pip install
명령어를 통해 현재 환경에 Django 패키지를 설치합니다.$ pip install django

사진처럼 마지막에
Successfully installed
메시지가 뜨면 성공적으로 설치된 것입니다.pip install django
명령어는 django의 최신 버전이 설치됩니다.
만약 특정 버전을 설치하고 싶은 경우에 pip install django==[버전]
명령어를 사용합니다.
ex) pip install django==3.1
이제
pip list
명령어를 통해 현재 환경에 django가 설치된 것을 확인할 수 있습니다.
django 외에도 추가적으로 설치되는 패키지들이 있는데, 이들은 django에 필요한 패키지들이 자동으로 설치된 것입니다.
2.2. django 프로젝트 생성
django를 설치하면 이제
django-admin
명령어를 사용할 수 있게 됩니다.
가장 대표적으로 django-admin startproject [프로젝트 명] [경로]
으로, 해당 [프로젝트 명]
으로 해당 [경로]
에 프로젝트를 생성하는 명령어입니다.다음 명령어를 통해
MBIT
라는 이름으로 현재경로(.
)에 프로젝트를 생성합니다. 명령어 마지막에 점(.)을 꼭 넣어주셔야 합니다!$ django-admin startproject MBIT .
그러면 현재 경로에 프로젝트 메인 폴더와
manage.py
파일이 생성됩니다.
2.3. django 프로젝트 실행
프로젝트가 정상적으로 잘 생성되었는지 확인하기 위해 다음 명령어를 통해 프로젝트를 실행시킵니다.
$ python manage.py runserver 0:80
프로젝트 웹 페이지로 접속하려면
프로젝트
>실행 URL과 포트
에 등록된 URL로 접속합니다.

접속하면 다음의 오류 메시지의 페이지를 볼 수 있는데, 이는 django 프로젝트가 잘 실행되고 있지만 현재 호스트의 접속을 허가하고 있지 않다는 뜻입니다.

모든 호스트에서 프로젝트 URL에 접근을 허용할 수 있도록
[프로젝트 명]/settings.py
에서 ALLOWED_HOSTS
를 다음과 같이 수정합니다.ALLOWED_HOSTS = ['*']
이제 다시 프로젝트 URL로 접속하면 장고의 메인화면인 로켓을 볼 수 있습니다.

2.4. 앱 생성
이제 해당 프로젝트에서 내가 원하는 기능을 수행하는 앱을 만들어야 합니다. 장고 프로젝트에서 앱을 만드는 명령어는
python manage.py startapp [앱이름]
입니다.다음 명령어를 통해
main
이라는 이름의 앱을 생성합니다.$ python manage.py startapp main
그러면 해당 이름으로 앱 폴더가 생성됩니다.

앱을 생성한 뒤에는 반드시 해당 앱을 프로젝트에 등록을 해주어야 합니다. 그렇지 않으면 프로젝트는 해당 앱의 존재를 인식하지 못하고 사용할 수 없습니다.
[프로젝트 명]/settings.py
에서 INSTALLED_APPS
리스트에 해당 앱 이름을 추가해줍니다.INSTALLED_APPS = [ 'main', #앱이름 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
장고에서는 리스트, 튜플, 딕셔너리 등에서 마지막 요소에도
,
를 붙이는 것을 권장합니다. 붙이지 않아도 에러가 나지는 않으나, 이는 추후에 요소를 뒤에 추가할 때 종종 ,
를 빠트려서 나는 에러를 방지하기 위함입니다.