본문 바로가기
백엔드/Django

[Django] 장고 프로젝트 시작하기(Windows)

by 토마토베이컨수프 2021. 9. 30.

기본 환경 셋팅

윈도우를 사용한다면 리눅스 개발 환경을 세팅해 주기 위해 WSL을 설치해주어야 합니다.

 

저는 개인적으로 아래 링크를 따라가면 볼 수 있는 노마드 코더의 '개발자를 위한 윈도우 셋업' 영상을 추천드립니다.

https://nomadcoders.co/windows-setup-for-developers/lobby

 

Watch Now – 노마드 코더 Nomad Coders

 

nomadcoders.co

 

그 다음, WSL 커널을 열고 아래와 같은 명령어들을 입력해 줍니다.

sudo apt-get update
한번에 입력
sudo apt-get install -y make build-essential \
 libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \
 wget curl llvm libncurses5-dev libncursesw5-dev \
 xz-utils tk-dev git python-pip

만약

E: Package 'python-pip' has no installation candidate

와 같은 에러가 발생한다면 마지막 줄에서 python-pip가 아닌 python3-pip로 다시 시도해 보세요.

 


pyenv 설치

프로젝트를 만들고 싶은 디렉토리를 생성 후 해당 디렉토리로 이동해 줍니다.

cd ~ 	우선 홈 디렉토리로 이동해 줍니다.
mkdir new_project
cd new_project/

 

그리고 pyenv 설치를 위해 다음 명령어를 입력해 줍니다.

curl https://pyenv.run | bash

그러면 나타나는 코드들 중 맨 마지막 3줄

export ~

eval ~

eval ~

이라고 표시된 코드 3줄을 복사합니다.

 

다시 홈 디렉토리로 이동 후, code . 명령어를 통해 VScode를 실행시킵니다.

cd ~
code .

그리고 그곳에 있는 파일들 중 .bashrc를 찾아 파일 맨 밑줄에 위에서 복사한 코드 3줄을 붙여넣기한 후 저장합니다.

 

만약 pyenv path경로가 이상하게 나오거나 코드들이 제대로 출력되지 않는다면

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"

이 코드들을 .bashrc 맨 밑줄에 추가하거나

 

# .profile 맨위
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

# .bashrc 맨 아래
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

이 코드들을 두 파일에 각각 추가 해주세요!

 

그 후 다시 터미널에서 pyenv --version 입력 후 pyenv의 버전이 출력된다면 pyenv가 제대로 설치되었다는 것을 확인할 수 있습니다.

pyenv --version

 


가상환경 만들기

설치할 수 있는 파이썬의 버전들을 확인할 수 있는 명령어 입니다.

pyenv install --list

 

pyenv를 이용해 특정 버전의 파이썬을 설치한 후, 해당 버전의 파이썬으로 구성된 가상환경을 만들어 줍니다. 가상환경의 이름은 본인이 정할 수 있습니다.

pyenv install 3.8.1
pyenv virtualenv 3.8.1 project-env

 

그리고 전에 만들었던 로컬 디렉토리로 이동 후 가상환경을 적용해 줍니다. 

cd new_project
pyenv versions
pyenv local project-env

 

그리고 셋팅한 이 디렉토리 내의 가상환경에 django를 설치해줍니다. 특정 버전을 지정해서 설치할 수 있습니다.

pip install django==3.0

만약 로컬 환경에 설치된 패키지들의 리스트를 보고 싶다면 pip list 명령어를 입력하시면 됩니다.

 


장고 프로젝트 시작하기

로컬 디렉토리 내에서 만들고 싶은 프로젝트 이름을 설정해 프로젝트를 시작합니다.

django-admin startproject my_project
cd my_project
code .

 

안으로 들어가면 정해진 구조에 따라 프로젝트들이 어느정도 build 되어 있습니다. 각각의 파일에 대한 설명은 다음과 같습니다.

  • {my_project}/ : .'Project Root' :모든 파일이 담겨 있는 최상위 디렉토리
    • manage.py : Django 프로젝트 관리를 위한 명령어를 지원 앱 생성, 데이터베이스 관련 명령, 개발서버 실행 등  
    • db.sqlite3 : 우리 프로젝트에 사용하는 데이터베이스 파일
    • {my_project}/ : .'Project App' : 우리 프로젝트의 중심이 되는 앱
      • __init__.py : 파이썬 패키지로 인식하기 위한 파일
      • settings.py : 시간대 설정, 데이터베이스 설정, 여러 경로 설정 프로젝트의 전반적인 설정을 담당
      • urls.py : URL을 보고 알맞은 페이지로 연결해 주는 역할
      • wsgi.py : 웹 서버와 Django가 소통하는데 필요한 프로토콜

 

그리고 장고에서 서비스 기능 각각을 담당하는 단위인 앱(App)을 생성해 봅시다. 프로젝트 디렉토리 내에서 다음과 같은 명령어를 입력해 줍니다.

python manage.py startapp my_app

앱의 구조는 다음과 같습니다.

  • my_app/
    • __init__.py
    • admin.py : 앱을 django 관리자와 연동하기 위해 필요한 설정 파일
    • apps.py : 앱에 대한 설정을 넣어주는 파일
    • models.py : django 앱에서 사용할 데이터 모델 정의 데이터베이스 연동과 관련된 파일
    • tests.py : 프로젝트의 테스트 코드를 작성하는 곳
    • views.py : django 앱의 메인 로직 처리와 관련된 파일
    • migrations/ : 데이터베이스의 변경 사항 히스토리 누적
      • __init__.py

그리고 새로운 앱을 만들었다면 프로젝트 앱 안의 settings.py 안에 INSTALLED_APPS = [] 항목에 '앱 이름' 을 추가해줘야 됩니다.

 

그리고 이제 이 프로젝트의 개발 서버를 실행해 프로젝트 웹 페이지로 이동해 봅시다.

django-admin runserver
	또는
python manage.py runserver

이렇게 터미널에 생성되는 url을 타고 프로젝트 페이지로 이동할 수 있습니다.

장고 프로젝트 초기 화면

 

'백엔드 > Django' 카테고리의 다른 글

[Django] allauth 패키지  (0) 2021.10.25
[Django] 제네릭 뷰  (0) 2021.10.11
[Django] 페이지네이션(Pagination) 기능  (0) 2021.10.10
[Django] 폼(Form)에 관하여  (0) 2021.10.05
[Django] MVT 구조  (0) 2021.10.02