Django Project 환경 구축
(feat.venv)
목차
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을 프로젝트 마다 지정할 수 있는 것이다.
virtualenv 설치
> pip install vitualenv
py -m venv
명령어를 실행해서 다음과 같은 사용법 안냇말이 나오면 Python3에 내장된 venv를 사용할 수 있다.
아래 명령을 사용하여 가상환경 프로젝트 폴더를 설정할 수 있다.
> py -m venv 프로젝트 폴더 명
아래 명령 으로activate.bat
파일을 실행하여 가상환경을 실행한다.
> 프로젝트 폴더\Scripts\activate.bat
가상환경을 종료하는 명령은 아래와 같다.
> deactivate
가상환경을 실행 한 후 pip를 통해 django를 설치한다.
> pip install django
Django 프로젝트 생성 명령은 아래와 같다.
> django-admin startproject 프로젝트 폴더 명
실제로 Django project는 프로젝트 이름의 디렉터리 안에 있는 프로젝트 이름의 디렉터리다.
그러니까 django-admin.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.py
에 migrate
명령어를 주면 Django framework에서 제공하는 도구가
사용하는 데이터베이스 관련 작업을 자동으로 진행한다.
데이터베이스의 최고 권한 사용자를 설정하는 방법은 아래와 같다.
> py manage.py createsuperuser
비밀번호는 언제든지changepassword
명령어로 바꿀 수 있다.
바꿀 대상(username)을 지정하면 된다.
> python manage.py changepassword youb
이렇게 수행한 데이터베이스 작업은 db.sqlite3
라는 파일에 저장된다.
이 파일은 sqlite3
이라는 데이터베이스 엔진이 다루는 데이터베이스 파일이다.
Django framework은 따로 settings.py
에 설정하지 않으면 기본으로 sqlite3
데이터베이스를 사용하도록 되어 있다.
manage.py
로 App을 만드는 명령은 아래와 같다.
> python manage.py startapp 앱 이름
manage.py
로 만든 Django app은 다음과 같이 구성되어 있다.
생성된 Django app의 models.py
를 수정한 후 settings.py
에 등록한 후 DB에 반영하는 명령은 아래와 같다.
> python manage.py makemigrations 앱 이름
...
> python manage.py migrate 앱 이름
[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 |