1. Restframework 설치
- 터미널에 아래의 명령어를 입력시켜 준다.
pip install djangorestframework
- settings.py 에 rest framework 추가 해준다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]
2. 어플리케이션 생성
- 어플리케이션을 생성한다.
$ python manage.py startapp myapp
- setting.py 에 추가한다.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'myapp'
]
3. 모델 생성
myapp/models.py 에 간단하게 아래의 post model class 를 추가해준다.
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
text = models.TextField()
아래의 명령어로 데이터 베이스에 모델을 위한 테이블을 형성한다.
$ python manage.py makemigrations myapp
$ python manage.py migrate
4. Serializers
쿼리셋, 모델 인스턴스 등의 복잡한 데이터를 json, xml 등의 데이터로 변환해준다.
- myapp/serializers.py 생성 후 아래의 코드를 입력한다.
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ('title', 'text')
5. Views
Viewset 하나에 다양한 method를 포함하고 있다.
- myapp/views.py 수정한다.
from rest_framework import viewsets
from .serializers import PostSerializer
from .models import Post
class PostViewset(viewsets.ModelViewSet):
queryset = Post.objects.all()
serializer_class = PostSerializer
6. urls
router 를 설정해 준다. router 는 URL을 자동으로 맵핑해준다.
- project/urls
from rest_framework import routers
from myapp import views
from django.conf.urls import url, include
router = routers.DefaultRouter()
router.register(r'posts', views.PostViewset)
urlpatterns = [
url(r'^',include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
7. 서버 실행 후 동작 확인
$ python manage.py runserver
서버를 실행 후 위 주소로 들어가면 Default router에 의해서 접근할 수 있는 URL 인 http://127.0.0.1:8000/posts가 표시된다.
http://127.0.0.1:8000/posts에 접속을 해보면 아래와 같이 post list를 볼 수 있다. 현재는 데이터를 하나도 등록을 안시켰으므로 비어 있다.
하단의 title 과 text 에 test 문구를 넣어주고 post 버튼을 눌러보자. post 를 누르면 post된 data만 보이게되고
다시 오른쪽 상단의 get버튼으로 list를 다시 받아오면 아래와 같이 내가 등록했던 data list를 볼 수 있다.
기본적으로 rest framework 을 구성해 보았다.
다음 시간에는 안드로이드와 연결되서 실제로 어떻게 쓸 수 있는지 알아보고자 한다.
'Django' 카테고리의 다른 글
[Django] RestFramework Pagination 예제 (0) | 2019.10.10 |
---|---|
[Django] RestFramework Serializer 댓글 모델 추가하기 (0) | 2019.10.08 |
[Django] RestFramework Image file upload ImageField (0) | 2019.10.04 |
[Django] Django-rest-auth 회원가입, 로그인, 로그아웃 예제 (0) | 2019.09.28 |
Django ngrok 설정, 홈 서버 (0) | 2019.09.22 |