Tiny Finger Point Hand With Heart
본문 바로가기
Python/DRF(Django REST Framework)

[DRF] Todo 목록 API만들기(2)

by yoondii 2023. 1. 30.
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

댓글