본문 바로가기
파이썬(Python)

[Django] 파이썬 가상환경(virtualenv) 만들기(2)

by 즐거운코딩 2023. 12. 3.
반응형

이전 블로그에서 장고 프로젝트를 가상환경에서 만들기 위한 기본 설정을 진행하였습니다.

기본 설정 사항이 궁금한 경우 이전 블로그를 참조하기 바랍니다.

2023.12.03 - [파이썬(Python)] - [Django] 파이썬 가상환경(virtualenv) 만들기(1)

 

[Django] 파이썬 가상환경(virtualenv) 만들기(1)

파이썬으로 프로그램 개발시 다양한 라이브러리와 패키지를 다운로드 받아서 사용하게 됩니다. 이 때 설치 시점에 따라 또는 다른 개발자가 개발한 프로젝트의 수정 등을 진행할 때 버젼이 맞

peter-codinglife.tistory.com

 

이번 블로그에서는 가상환경에서 필로한 패키지 설지 및 .gitignore 설정 변경에 대해 예시를 통해 주의사항에 대해 알려드리고자 합니다.

 

1.  설치된 패키지 및 라이브러리 확인하기

  • PC 에 현재 설치된 파이썬 패키지 확인하기 $pip list
    • 전체 설치된 패키지명 확인가능

  • 가상환경에서 설치된 패키지 확인하기
    • 가상환경 실행 $source myenv/bin/activate. (myenv 는 가상환경 이름)
    • 가상환경내에서 $pip list 로 등록된 패키지 확인

                기본적인 3개 패키지만 설치된 것 확인 가능합니다.

                이와 같이 가상환경에서는 기존 PC내 설치된 패키지와 분리하여 별도 관리가 가능합니다.

 

2.  가상환경내에서 Django 패키지 설치하기

  • $pip install django 실행
  • 패키지 설치 이후 $pip list 로 설치 정보 확인 - django 관련 4개 패키지 추가 설치

 

3.  Django 프로젝트 생성하기

이해를 돕기 위해 예시로 배송추적관련 프로젝트를 만들기 위해 프로젝트명을 delivery_tracking_prj 으로 하여 django_delivery 디렉토리에서 생성합니다.

  • 프로젝트 생성 "$django-admin startproject delivery_tracking_prj ."  
  • 현재 폴더에 프로젝트를 생성하기 위해 프로젝트명 다음에 "." 를 입력

 

4.  서버 실행 및 관리자(Admin) 화면 

프로젝트 생성 이후 정상 설치를 확인하기 위해 django 서버를 실행해봅니다.

  • $python manage.py runserver

  • django(장고) 기본 페이지는 http://127.0.0.1:8000 으로 접속하여 확인

django 기본 화면

  • 프로젝트 runserver 실행시 "You have 18 unapplied migration(s)." 오류 표출
  • 프로젝트 생성할 데이터베이스에 기본적으로 필요한 테이블을 미리 마련 하기 위해 18 마이그레이션 필요 
  • Ctrl+c 로 서버를 중지하고 $python manage.py migrate 실행
    • 필요한 테이블이 생성되고 이후 서버 실행시 오류 없이 정상 동작

  • 테이블은 PC로컬에 생성된 데이터베이스인 db.sqlite 설정하기
    • 관리자 계정 생성 $python manage.py createsuperuser

 

  • Django Admin 화면에 들어가기
    • 서버를 실행하고 http://127.0.0.1:8000/admin 접속
    • 앞에서 등록한 superuser 계정으로 로그인 하기

5.  Git 동기화 예외처리 파일 등록하기

git에 repository에 push 예외적으로 할 대상은 아래와 같습니다.

  • 가상환경 폴더 myenv
  • 데이터베이스 파일 db.sqlite  : 운영서버에 개발 테스트용 데이터베이스가 업로드 되면 안되기 때문에 버젼관리에서 제외
  • 기타 API 키, 외부 db 접속 IP , 관리자 ID/패스워드 등은 로컬에서만 관리하고 개발진행
  • .gitignore 파일 참조 
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Environments
.env
.venv
env/
venv/
myenv/
ENV/
env.bak/
venv.bak/

 

반응형