티스토리 뷰

How to use Django on Ubuntu

예전에는 간단하게 설치법을 다루었었는데 요즘 Python과 더불어

함께 급부상 하고있는 Python Web Framework인 Django, Flask등의 인기가

끊임 없이 상승중이어서 자세히 다뤄보고자 한다.

(Django를 사용하는 대표적 서비스에 대한 소개. http://codecondo.com/popular-websites-django/)


설치 방법

step 1. Instal Python & Tools

python 부터 설치하도록 한다.

$ sudo apt-get install python



python 설치 후 installer를 설치한다.

(Nodejs의 npm, php의 pear, ruby의 gem과 같은 Package Installer)

$ sudo apt-get install python-setuptools



python 독립된 가상환경을 제공하는 virtualenv까지 설치하면 기본적인 설정은 끝이다.

$ easy_install virtualenvwrapper



bashrc에 환경변수 설정을 미리 해두도록 한다.

~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs

export PROJECT_HOME=$HOME/rocksea

source /usr/local/bin/virtualenvwrapper.sh


$ source ~/.bashrc



Step 2. 가상환경 생성.

독립적으로 가상환경을 구성하여 각 프로젝트 환경에 맞는 가상환경을

운영하도록 한다.

$ mkvirtualenv YOUR_VIRTUALENV_NAME



가상환경을 만든 후 실행한다. 이제 독립된 환경에서 프로젝트 관련된

라이브러리 등을 설치하여 관리가 가능하다.

$ workon YOUR_VIRTUALENV_NAME



Step 3. Django 설치

독립된 가상환경에 Django를 설치하도록 한다.

$ pip install django==1.8



MySQL을 MainDB로 사용할 것이기 때문에 MySQL 관련 Library들을 설치하도록 한다.

$ sudo apt-get update

$ sudo apt-get install libmysqlclient-dev

$ sudo apt-get install python-dev

$ pip install mysql-python==1.2.5



Django가 잘 설치되었는지 확인해 보도록 한다.

$ python

Python 2.7.6 (default, Mar 22 2014, 22:59:56)

[GCC 4.8.2] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> import django

>>> print(django.get_version())

1.8.2

>>>



Step 4. Django Project 생성

설치가 확인 되었으면 Django Project를 생성해보도록 한다.

$ django-admin startproject rocksea



프로젝트 생성 후 Main DB를 MySQL 정보로 수정한다. (Default SQL Lite)

$ vi rocksea/settings.py

DATABASES = {

'default': {

    'ENGINE': 'django.db.backends.mysql',

    'NAME': 'DB_NAME',

    'HOST': '127.0.0.1',

    'PORT': '3306',

    'USER': 'root',

    'PASSWORD': '',

}}



DB정보 수정 후 Migration 명령을 통해 DB를 생성하도록 한다.

$ python manage.py migrate

Operations to perform:

  Synchronize unmigrated apps: staticfiles, messages

  Apply all migrations: admin, contenttypes, auth, sessions

Synchronizing apps without migrations:

  Creating tables...

    Running deferred SQL...

  Installing custom SQL...

Running migrations:

  Rendering model states... DONE

  Applying contenttypes.0001_initial... OK

  Applying auth.0001_initial... OK

  Applying admin.0001_initial... OK

  Applying contenttypes.0002_remove_content_type_name... OK

  Applying auth.0002_alter_permission_name_max_length... OK

  Applying auth.0003_alter_user_email_max_length... OK

  Applying auth.0004_alter_user_username_opts... OK

  Applying auth.0005_alter_user_last_login_null... OK

  Applying auth.0006_require_contenttypes_0002... OK

  Applying sessions.0001_initial... OK



DB Schema 확인

> show tables;

+----------------------------+

| Tables_in_rocksea          |

+----------------------------+

| auth_group                  |

| auth_group_permissions|

| auth_permission           |

| auth_user                    |

| auth_user_groups               |

| auth_user_user_permissions |

| django_admin_log           |

| django_content_type        |

| django_migrations          |

+----------------------------+



DB Migration 종료 후 프로젝트 관리자 계정 정보를 등록하도록 한다.

$ python manage.py createsuperuser

Username (leave blank to use 'root'):

Email address: globalrocksea@gmail.com

Password:

Password (again):

Superuser created successfully.



서버를 구동해보도록 한다.

$ python manage.py runserver 0.0.0.0:8000



Browser로 접속 후 확인해보면 아래와 같은 사이트에 접속이 가능하다.

http://localhost:8000/admin

[그림1] Django Admin Web 페이지


이어서 바로 Django 패키지 구조 및 코딩 방법에 대해 소개하도록 하겠다.

댓글