가상환경 세팅


별개의 프로젝트 구성을 위해 가상환경을 설치하자.

python3 -m venv env
source env/bin/activate

패키지 설치

pip install django
pip install djangorestframework
pip install pygments  # We'll be using this for the code highlighting

시작하기


가상환경 설치가 완료 되었다면 새로운 프로젝트를 생성하자.

cd ~
django-admin startproject tutorial
cd tutorial

완료되었다면 간단한 Web API을 생성하기위해 사용할 앱을 생성하자.

python manage.py startapp snippets

새로 생성한 snippets앱과 rest_frameworktutorial/settings.py안에 INSTALLED_APPS에 추가하자.

INSTALLED_APPS = [
    ...
    'rest_framework',
    'snippets.apps.SnippetsConfig',
]

작업할 모델 생성


코드 조각들을 저장할 Snippet 모델을 snippets/models.py에 생성하자.


from django.db import models
from pygments.lexers import get_all_lexers
from pygments.styles import get_all_styles

LEXERS           = [item for item in get_all_lexers() if item[1]]
LANGUAGE_CHOICES = sorted([(item[1][0], item[0]) for item in LEXERS])
STYLE_CHOICES    = sorted([(item, item) for item in get_all_styles()])

class Snippet(models.Model):
    created  = models.DateTimeField(auto_now_add=True)
    title    = models.CharField(max_length=100, blank=True, default='')
    code     = models.TextField()
    linenos  = models.BooleanField(default=False)
    language = models.CharField(choices=LANGUAGE_CHOICES, default='python', max_length=100)
    style    = models.CharField(choices=STYLE_CHOICES, default='friendly', max_length=100)

    class Meta:
        ordering = ['created']

snippet 모델을 생성했으니, migration을 함으로써 데이터베이스를 동기화 해주어야 한다.

python manage.py makemigrations snippets
python manage.py migrate