시작하며
Python: 3.6.3
IDE: VS Code
본 포스트는 Django 튜토리얼은 해보았다는 가정 하에 작성되었습니다.
만약 Django가 아예 처음이라면 장고걸스튜토리얼을 먼저 해보시길 바랍니다.
Django 개발 환경 세팅
원활한 Django 개발을 위해서는 파이썬 가상환경 세팅이 필요합니다. 다음과 같은 명령어로 venv 생성 및 패키지 설치, 초기 세팅을 진행합니다.
$ mkdir Rest-CRUD
$ cd Rest-CRUD
$ python3 -m venv venv
$ source venv/bin/activate
$ (venv) pip install django
$ (venv) django-admin startproject mysite .
$ (venv) python manage.py startapp api
여기까지 진행했을 때 디렉토리 구조는 다음과 같습니다.
- Rest-CRUD
- api
- manage.py
- mysite
- venv
여기에 추가로 djangorestframework 패키지와 django-rest-knox를 설치하겠습니다. djangorestframework는 당연하게도 Django Rest Framework를 위함이며, django-rest-knox는 추후에 진행할 회원가입/인증에 사용될 패키지입니다.
$ (venv) pip install djangorestframework
$ (venv) pip install django-rest-knox
당장 쓸 패키지가 아닌데도 미리 설치한 이유는 settings.py를 한번에 건드리기 위함입니다(귀찮을테니ㅎㅎ).
# mysite/settings.py
ALLOWED_HOSTS = ['127.0.0.1']
INSTALLED_APPS = [
...
'api',
'rest_framework',
'knox',
]
TIME_ZONE = 'Asia/Seoul'
위와 같이 앱을 등록하고 각종 설정을 마치면 migration 단계가 남았습니다.
$ (venv) python manage.py makemigrations
$ (venv) python manage.py migrate
여기까지 세팅이 완료되었다면 실행해봅시다!
$ (venv) python manage.py runserver
실행하여 로컬호스트 주소로 들어가면 잘 아는 Django 기본 화면이 나오게 됩니다.
여기까지는 그냥 Django 프로젝트랑 다를 바 없기 때문에 그래도 아주 간단한 api 하나 만들고 마치도록 하겠습니다.
GET 127.0.0.1:8000/api/hello/
해당 주소로 요청을 보내면 hello world를 print하는 api를 만들겠습니다.
첫번째 단계는 views.py를 작성하는 것입니다. view를 작성하는 방법에는 여러가지가 있고 추후에 정리하겠으며, 지금은 그냥 하셔도 됩니다.
# api/views.py
from rest_framework import viewsets, permissions, generics, status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.decorators import api_view
# Create your views here.
@api_view(['GET'])
def HelloAPI(request):
return Response("hello world!")
그 다음 api/urls.py 파일을 만들겠습니다.
# api/urls.py
from django.urls import path, include
from .views import HelloAPI
urlpatterns = [
path("hello/", HelloAPI),
]
마지막으로는 mysite/urls.py에 url을 등록하겠습니다.
(참고) urls.py에서 urlpatterns를 작성하는 방법이 최신버전부터 기존의 정규표현식으로 작성되던 url 기반에서 path 기반으로 변경되었으며 되도록 이 방식을 따르길 권장합니다.
# mysite/urls.py
from django.urls import path, include
from django.contrib import admin
urlpatterns = [
path("admin/", admin.site.urls),
path("api/", include("api.urls"))
]
이제 실행시키고, 127.0.0.1:8000/api/hello/ 로 접속하시면 다음과 같은 화면을 볼 수 있습니다.
와 처음 보는 형태의 화면이죠? Django Rest Framework에서 기본적으로 제공하는 이 화면은 api 형태의 요청에 대한 응답을 다음과 같이 표시해줍니다. api 테스트 툴 대신 충분히 사용할 만한 기능입니다.
여기까지 아주 간단하게 Django Rest Framework에 대한 감 잡기 및 설정까지 마쳤습니다. 다음 포스트에서는 위의 코드에 대한 조금 더 자세한 설명과 view를 작성하는 여러 방법에 대해 다뤄보겠습니다.
'Django Rest Framework' 카테고리의 다른 글
03. Django Rest Framework 회원 인증, 유저 모델 확장하기 (3) | 2019.11.10 |
---|---|
02. Django Rest Framework, Serializer, View 개념 익히기 (4) | 2019.11.07 |
00. 들어가며 - Django Rest Framework로 게시판 만들기 (0) | 2019.11.04 |