Language/Python [Python] Django Project 환경 구축(feat.venv)
  • 728x90
    반응형

     

     

     

    Django Project 환경 구축

    (feat.venv)

     

     

     

    목차

       

       

      Python 가상 환경 설정하기

      virtualenv(Virtual Environment)는 가상으로 Python 환경을 만드는 도구이다.

       

      실제 환경인 주 시스템(운영체제)에 패키지를 설치하면 패키지가 바뀔 때마다 그 패키지를 사용하는 프로젝트 모두가 영향을 받는다.

       

      예를 들어, Django 1.6 버전을 기반으로 프로그램을 개발하였는데, 얼마 후 1.6버전과 호환성이 떨어지는 Django 1.7버전이 출시됐다고 가정한다.

       

      만약 Django 1.7 버전을 설치한다면 Django 1.6 버전에서 잘 작동하던 프로그램에 문제가 발생할 지도 모른다.

       

      Django 1.6 버전을 기반으로한 프로젝트와, Django 1.5 버전 기반으로한 프로젝트는 Django 1.7 버전 기반으로 환경을 분리하면 되는데, 한 시스템에서 이런 환경을 가상으로 분리하여 편하게 관리하도록 도와주는 도구가 바로 virtualenv이다.

       

      Python 패키지 뿐만 아니라 사용할 Python 버전도 가상 환경으로 분리할 수 있다.

       

      한 시스템에 여러 Python 버전을 설치하고, 버전에 따라 사용할 Python을 프로젝트 마다 지정할 수 있는 것이다.

       

       

      vitualenv 설치 및 설정

      virtualenv 설치

      > pip install vitualenv

       

      py -m venv명령어를 실행해서 다음과 같은 사용법 안냇말이 나오면 Python3에 내장된 venv를 사용할 수 있다.

       

       

      아래 명령을 사용하여 가상환경 프로젝트 폴더를 설정할 수 있다.

      > py -m venv 프로젝트 폴더 명

       

      아래 명령 으로activate.bat파일을 실행하여 가상환경을 실행한다.

      > 프로젝트 폴더\Scripts\activate.bat

       

      가상환경을 종료하는 명령은 아래와 같다.

      > deactivate

       

       

       

      Django 설치

      가상환경을 실행 한 후 pip를 통해 django를 설치한다.

      > pip install django

       

       

       

       

      Django 프로젝트 생성

      Django 프로젝트 생성 명령은 아래와 같다.

      > django-admin startproject 프로젝트 폴더 명

       

       

      실제로 Django project는 프로젝트 이름의 디렉터리 안에 있는 프로젝트 이름의 디렉터리다.

       

      그러니까 django-admin.py가 만든 디렉터리는 이렇게 구성된다.

       

       

       

       

      manage.py 와 개발용 내장 웹 서버

      manage.py 파일은 Django로 돌아가는 프로젝트를 다양하게 다루는 도구다.

       

      Database를 만들거나 개발용 내장 웹서버로 우리가 만드는 프로젝트를 서버로 구동하는 기능 등 여러 편의 요소를 제공한다.

       

      서버를 구동하는 명령은 아래와 같다.

      > py manage.py runserver

       

       

      서버가 구동되고 127.0.0.1:8000 으로 접속해보면 아래와 같이 나타난다.

       

       

       

      내장 웹서버의 접속 주소를 바꾸는 방법은 사용할 주소를 지정하면 된다.

      > py manage.py runserver 127.0.0.1:8080

       

       

       

      데이터베이스 설정

      django-admin.py로 project를 만들고 나면 데이터베이스를 동기화하는 과정을 거친다.

       

      데이터베이스를 전혀 사용하지 않는다면 생략하기도 한다.

      > py manage.py migrate

       

       

       

      manage.pymigrate명령어를 주면 Django framework에서 제공하는 도구가

       

      사용하는 데이터베이스 관련 작업을 자동으로 진행한다.

       

      데이터베이스의 최고 권한 사용자를 설정하는 방법은 아래와 같다.

      > py manage.py createsuperuser

       

       

      비밀번호는 언제든지changepassword명령어로 바꿀 수 있다.

       

      바꿀 대상(username)을 지정하면 된다.

      > python manage.py changepassword youb

       

      이렇게 수행한 데이터베이스 작업은 db.sqlite3라는 파일에 저장된다.

       

      이 파일은 sqlite3이라는 데이터베이스 엔진이 다루는 데이터베이스 파일이다.

       

      Django framework은 따로 settings.py에 설정하지 않으면 기본으로 sqlite3데이터베이스를 사용하도록 되어 있다.

       

       

      Django app 생성

      manage.py로 App을 만드는 명령은 아래와 같다.

      > python manage.py startapp 앱 이름

       

       

      manage.py로 만든 Django app은 다음과 같이 구성되어 있다.

       

       

       

      Django app 데이터 DB 반영

      생성된 Django app의 models.py를 수정한 후 settings.py에 등록한 후 DB에 반영하는 명령은 아래와 같다.

      > python manage.py makemigrations 앱 이름

      ...

      > python manage.py migrate 앱 이름

       

       

       

       

       

      728x90
      반응형

      'Language > Python' 카테고리의 다른 글

      [Python] 카운터(Counter) 모듈  (0) 2018.11.20
      파이썬 소개(설치/특징/버전비교/기초)  (0) 2018.11.16
      Python web crawler  (0) 2018.07.05
      Python으로 엑셀 사용(feat.openpyxl)  (0) 2018.06.29
      [Python] Zip Cracker  (0) 2018.04.09
    상단으로