현제의 현재이야기

[DRF/RESTful API] Read 본문

Django

[DRF/RESTful API] Read

현재의 현제 2022. 7. 25. 16:31

Serializer는 rest-framework에서 form의 역할을 함

form은 HTML form을 생성하나, serializer는 json 형식의 결과물을 뱉음

 

나머지는 모델, 폼과 똑같고 다른게 form이 아니라 serializers.py를 작성한다.

 

serializers.py

from rest_framework import serializers
from dataclasses import field
from .models import Blog

class BlogSerializer(serializers.ModelSerializer):
    class Meta:
        model = Blog
        fields = ['id', 'title', 'body']
        read_only_fields = ['id']

 

다른 점이 views.py였다.

views.py

from .models import Blog
from .serializers import BlogSerializer
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import status

'''
전체 블로그를 조회
'''
@api_view(['GET']) # GET 요청만 받겠다.
def get_all_blogs(request):
    blogs = Blog.objects.all()
    serializer = BlogSerializer(blogs, many=True)
    return Response(serializer.data)

'''
한 블로그 조회
'''
@api_view(['GET'])
def get_one_blog(request, pk):
    try: # 아래 코드를 시도
        blog = Blog.objects.get(pk=pk)
        serializer = BlogSerializer(blog)
        return Response(serializer.data)
    except Blog.DoesNotExist: # 예외(오류) 발생 시 아래 코드 실행
        return Response(status=status.HTTP_404_NOT_FOUND)

@api_view([''POST'])가 들어오면 완저히 무시해버린다.

 

'Django' 카테고리의 다른 글

새로운 프로젝트 구상  (0) 2022.11.16
[멋쟁이사자] django 로 개인 블로그 만들기 과제 리뷰  (0) 2022.07.23
what is api??  (0) 2022.07.22
장고 복습 7/9  (0) 2022.07.09
장고 복습 7/8  (2) 2022.07.08
Comments