WEB/Django prac

[Django prac][DRF with Single Model] 4. View함수 작성, 서버 켜서 결과 확인

bay07 2024. 4. 15. 15:35

# articles > views.py 

many 옵션

(many = True)

Serialize 대상이 QuerySet인 경우에 입력한다 

 

data 속성

Response(serializer.data)

serialized data 객체에서 실제 데이터를 추출한다.

 

과거의 view함수는 HTML에 출력이 되도록 페이지와 함께 응답을 했다. 

현재의 view함수는 JSON 데이터로 serialization하여, 페이지 없이 응답한다. 

 


'api_view' decorator 

DRF view 함수에서 필수로 작성된다. 

view 함수를 실행하기 전 HTTP 매서드를 확인한다. 

기본적으로 GET 메서드만 허용되며, 다른 메서드 요청에 대해서는 405 Method Not Allowed로 응답한다. 

DRF view 함수가 응답해야 하는 HTTP 매서드 목록을 작성한다. 

더보기
from rest_framework.response import Response
from rest_framework.decorators import api_view

from .models import Article
from .serializers import ArticleListSerializer

@api_view(['GET'])
def article_list(request):
    articles = Article.objects.all()
    serializer = ArticleListSerializer(articles, many=True)
    return Response(serializer.data)

 

 

 

#  서버 켜기 

save all 

python manage.py runserver

 

# PostMan

PostMan 켜기 

장고의 주소로 요청보내기 

http://127.0.0.1:8000/api/v1/articles

 

여기서 Send를 누르면, 실제로 장고로 GET 요청이 간 것이다. 

(왼쪽에 GET으로 되어있는 것 확인하기)

 

# 응답에서 상태코드 보기 

200 OK : 이건 성공했다는 뜻

JSON 형태의 파일로 보임

 

Chrome에서 보이는 페이지와 같다. 

Chrome에서 보이는 건, DRF가 JSON 데이터를 원활하게 보여주기 위해서

임의로 디자인한 페이지이다. 

실제로 우리는 결국 코드로 소통하기 때문에, 실제로 페이지가 존재하지는 않는다. 

(페이지를 응답받은 것은 아님)