본문 바로가기

프로그래밍/Python

[DJango-프로젝트 환경설정]

1. DJango 프로젝트 생성을 위한 가상개발환경 

  장고를 이용한 프로젝트를 생성할 때에는 파이썬 또는 장고등 기타 프레임워크 등의 버전이 프로젝트마다 다를 수 있기 때문에 프로젝트별 개발 환경 설정하여 버전이 변경되었을 때 의도치 않은 동작을 피할 수 있다.

 

2. VirtualENV 설치(프로젝트 버전관리자)

Visual Studio Code에서 프로젝트를 위한 작업 폴더를 Open한다

Visual Studio Code의 터미널 창을 Open 한다(메뉴>보기>터미널 선택)

pip3 install virtualenv

 

3. 새로운 가상개발환경 만들기

터미널 창에서 command 명령 virtualenv 으로 새로운 프로젝트를 생성한다.

virtualenv firstdjango_venv

위와 같이 가상환경 생성 메시지가 나오고 탐색기에는 해당 가상환경 이름으로 폴더가 만들어 진다.

현재 설치된 파이썬환경과 기타 설치된 모듈들이 가상 개발 환경으로 자동 등록 된다.

 

4. 가상 개발환경 활성화(Activate)

MAC - 터미널

source firstdjango_venv/bin/activate
or
source firstdjango_venv/scripts/activate

Windows - 터미널

firstdjango_venv/bin/activate
or
firstdjango_venv/scripts/activate

이때 Windows의 경우 다음과 같은 오류가 발생할 수 있다.

PS D:\django_basic> firstdjango_venv/scripts/activate
/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
+ firstdjango_venv/scripts/activate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

이것은 터미널로 사용하는 Powershell의 실행 권한과 관련된 것인데 윈도우>실행 창에서 powershell을 치면 다음과 같은 화면이 나오는데 여기서 "Powershell 개발자설정"을 선택한다.

"PowerShell" 섹션의 "서명하지 않고 로컬 PowerShell..." 부분을 체크하고 "적용" 버튼을 클릭하면 해당 오류 없이 다음과 같이 Activate된 가상개발환경 터미널이 나온다.

 

5. 가상 개발환경에 장고(DJango) 설치

 이미 장고를 설치 했지만 가상 개발환경에 독립된 장고 프레임워크를 설치하기 위해서는 Activate된 상태의 개발 환경에 다시 설치해 주어야 한다.

(firstdjango_venv) PS D:\django_basic> pip3 install django

 

6. 가상 개발환경에 장고기반의 프로젝트 생성하기

 가상개발 환경내에 프로젝트를 만들고 해당 프로젝트내에 앱을 만들어 보자

 프로젝트 : 큰 단위의 개발 단위(웹 서비스)

 앱 : 프로젝트내의 단위 모듈들(사용자관리, 게시판관리, 로그인, 상품정보 등등)

프로젝트 생성(= 폴더생성)

django-admin startproject firstproject

탐색기 창에 firstproject폴더가 생기고 django 프로젝트를 위한 기본 파일들이 생성되었다.

 

 

 

 

 

앱 생성

터미널 창에서 프로젝트 폴더로 들어가서 앱을 생성한다.

cd firstproject
django-admin startapp board

 

7. 앱 코드 구조

django-admin startapp board를 만들었다면 board 폴더가 생기고 앱을 위한 기본 파일들이 생기는데 templates 폴더는 자동으로 생성되지 않는다. 

기본적으로 django의 템플릿 엔진은 html관련 템플릿을 templates 폴더를 기본적으로 바라본다. 폴더 생성으로 "templates"폴더를 만든다.

- models.py : 데이터 관련코드 작성

- views.py : 비즈니스 로직 관련 코드 작성

- templates 폴더 : HTML 템플릿 코드 작성 폴더

 

8. 프로젝트에 앱 등록

  앱을 생성했다고 해서 자동으로 앱이 프로젝트에 등록되는 것은 아니다.

  앱을 등록하기 위해서는 프로젝트 생성시 생성된 폴더중

  firstproject / firstproject 폴더에 있는 settings.py를 편집해 주어야 한다.