728x90
반응형
Todo 전체조회 시리얼라이저 만들기
serializer은 데이터를 원하는 형태로 보내고 받기 위한 일종의 양식이다. 따라서 보내고 받는 형태에 따라 다른 시리얼라이저가 필요하다.
#todo/serializers.py
from rest_framework import serializers
from .models import Todo
class TodosimpleSerializer(serializers.ModelSerializer):
class Meta:
model = Todo
fields = ('id','title','complete','important')
Todo 전체조회 view 만들기
뷰를 작성하는 방법은 여러가지가 있다. 함수형뷰,클래스형뷰 ,APIView,generics,ViewSet등 이 있다.
일반적으로 CRUD를 개발할때는 ViewSet이 빠르고 편리하지만 완료 및 조회기능이 포함되어있어 APIView를 활용하여 진행했다.
#todo/views.py
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import viewsets
from .models import Todo
from .serializers import TodosimpleSerializer
# Create your views here.
class TodosAPIView(APIView):
def get(self,request):
todos = Todo.objects.filter(complete=False)
serializer = TodosimpleSerializer(todos, many=True)
return Response(serializer.data ,status=status.HTTP_200_OK)
Todo 전체조회 URL 만들기
#mytodo/urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('todo/',include('todo.urls'))
]
#todo/urls.py
from django.urls import path
from .views import TodosAPIView
urlpatterns = [
path('todo/',TodosAPIView.as_view()),
]
여기까지만 구현을 한 다음 관리자 페이지에 들어가 todo를 추가해보자.
아차차,,,그 전에 admin.py에 Todo모델을 등록해야한다.
#todo/admin.py
from django.contrib import admin
from .models import Todo
# Register your models here.
admin.site.register(Todo)
이렇게 todo가 생긴것이 보일 것이다. 마이그레이션 꼭 해주기!!
이제 진짜 todo를 추가해보자
원하는 내용 입력해 준 다음 save 눌러주면
따란~ 저장됩니다.
전체조회 API테스트하기
이제 Insomnia 도구를 켜서 API테스트를 해보자.https://insomnia.rest/ 여기서 맞는 os로 다운 받으면 됩니다.
이렇게 GET요청으로 url을 입력해주면 완료되지 않은 todo만 필터링 되어 나오는 것을 볼 수 있다.
728x90
반응형
'Python > DRF(Django REST Framework)' 카테고리의 다른 글
[DRF] Todo 목록 API만들기(4) (0) | 2023.01.30 |
---|---|
[DRF] Todo 목록 API만들기(3) (0) | 2023.01.30 |
[DRF] Todo 목록 API만들기(1) (0) | 2023.01.30 |
[DRF] Django Rest framework시작하기 (0) | 2023.01.30 |
REST API란? (0) | 2022.12.30 |
댓글