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'])가 들어오면 완저히 무시해버린다.