!! Django 기본 애플리케이션 생성 및 사용법에 대한 내용은 생략합니다.
참조 링크
rest framework 설치
pip install djangorestframework
본 구현에서는 rest framework를 따로 app 하나를 만들어 제공하였습니다.
app 생성
python3 manage.py startapp restapiapp
settings.py에 INSTALLED_APP 이하에 앱 이름과 rest_framework를 추가합니다
INSTALLED_APPS = [
'rest_framework',
'restapiapp',
]
프로젝트 urls.py에 다음과 같이 추가하여 연결시켜줍니다
urlpatterns = [
.
.
.
path('restapi/',include('restapiapp.urls')),
]
restapiapp폴더에 serializers.py파일 생성
지금부터는 restapiapp/serializers.py에 serializers 정의합니다
우선 포함할 라이브러리와 모델을 포함합니다.
from rest_framework import serializers
#사용하고자 하는 모델을 포함합니다
from 앱.models import 모델클래스명
#ex) from board.models import Boards
클래스를 정의합니다
#본 구현에서는 Boards라는 모델을 가지고 사용했습니다.
class BoardsSerializer(serializers.ModelSerializer):
class Meta:
model = Boards
fields = '__all__'
다음으로 restapiapp/views.py에 뷰를 정의합니다
from board.models import Boards
from rest_framework.response import Response
from rest_framework.views import APIView
class SerializerBoardsList(APIView):
def get(self, request):
chamber = Boards.objects.all()
# 여러 개의 객체를 serialization하기 위해 many=True로 설정
serializer = BoardsSerializer(chamber, many=True)
return Response(serializer.data)
# 새로운 Blog 글을 작성할 때
def post(self, request):
# request.data는 사용자의 입력 데이터
serializer = BoardsSerializer(data=request.data)
if serializer.is_valid(): #유효성 검사
serializer.save() # 저장
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
restapiapp/urls.py를 생성하여 다음과 같이 정의합니다
from django.urls import path,include
from restapiapp.views import *
from rest_framework.urlpatterns import format_suffix_patterns
urlpatterns = [
path('board/',SerializerBoardsList.as_view() ),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
]
urlpatterns = format_suffix_patterns(urlpatterns)
시스템을 재시작해 적용하고 /restapi/board/로 접속하여 테스트합니다