별개의 프로젝트 구성을 위해 가상환경을 설치하자.
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_framework
를 tutorial/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