당신은 멋쟁이, 우리는 장고쟁이~

0%

DRF Tutorial 1편 - Serialization 소개 및 초기설정

Django REST Framework


Django REST framework 튜토리얼 문서를 참조하면서. 튜토리얼을 진행해 봅니다.


Introduction (소개)


Django REST FRAMEWORK 를 사용하여, 간단한 pastebin 코드 하이라이팅 웹 API 를 만들어 보는 과정을 담고 있습니다. 진행하는동안, REST Framework 을 만드는 다양한 부분들을 소개합니다.


그리고 어떻게 모든것이 다같이 어울려져서 동작하는지에 대한 전반적인 이해도를 제공할것 입니다.


pastebin 혹은 텍스트 저장 사이트는, 온라인 컨텐트 호스팅 서비스의 종류로.

사용자들은 순수 텍스트를 저장할수 있습니다.

예를들면, 코드 리뷰를 위한 소스코드 스니펫 같은것 입니다.


Django REST FRAMEWORK Tutorial 은 생각보다 깊은 내용을 다룹니다. 빠른 오버뷰만 하시고 싶다면, quickstart 문서를 참조하면 됩니다.


Setting up new environment


새로운 환경 설정을 진행해줍니다. venv 를 사용하여 가상환경을 만들어 줍니다.


폴더를 하나 생성하고, 해당 폴더에서 아래 명령어를 실행해 줍니다. 이로써, 패키지 설정이 작업하고 있는 다른 프로젝트들과 분리가 되어 보관될수 있습니다.


1
2
python -m venv env 	# 새로운 가상환경 생성 
source env/bin/activate # 생성된 가상환경 실행

가상 환경이 생성되고, 실행 되면. 터미널 입력창 맨앞에 (가상환경명)이 붙습니다.



이제 해당 가상환경 안에, 필요한 패키지들을 설치해줍니다.


1
2
3
pip install django # Django 설치 
pip install djangorestframework # djangorestframework 설치
pip install pygments # 코드 하이라이팅을 위해 필요한 패키지


Django, djangorestframework 그리고 pygments 가 잘 설치 되었습니다


가상 환경을 빠져 나가고 싶을땐, 그냥 터미널에서, deactivate 를 타이핑 해주면 됩니다.


Getting Started


이제 코딩할 준비가 다 되었습니다. 시작하기 위해서, 작업을 위한 새로운 프로젝트를 생성해 줍니다


1
2
django-admin startproject tutorial 
cd tutorial

프로젝트 생성이 되었으면, 간단한 WEB API 를 생성하기 위해 사용할 새로운 앱을 생성해 줍니다.


1
python manage.py startapp snippets

프로젝트 앱 생성후 디렉토리 구조.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
├── manage.py
├── snippets
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
└── tutorial
├── asgi.py
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-37.pyc
│ └── settings.cpython-37.pyc
├── settings.py
├── urls.py
└── wsgi.py

새롭게 생성한 snippets 앱과 rest_framework 앱을 INSTALLED_APPS 에 추가해 줍니다.


tutorial/settings.py 파일에 아래와 같이 두 앱을 INSTALLED_APPS 에 추가해 줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'rest_framework',
'snippets',

]

자 이제 기본적으로 시작할 준비가 완료 되었습니다!