Tags
- regexp
- create
- 쟝고
- SQL
- update
- ORM
- Queue
- drf
- Article & User
- M:N
- count
- delete
- Django
- DB
- 이진트리
- Vue
- distinct
- N:1
- 큐
- 백트래킹
- stack
- migrations
- Tree
- 통계학
- 뷰
- 트리
- 스택
- 그리디
- 완전검색
- outer join
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
Django에 대하여(31)_DRF - GET 본문
1. GET
1-1. GET - List
- 게시글 데이터 목록 조회하기
- 게시글 데이터 목록을 제공하는 ArticleListSerializer 정의
- serializers.py의 위치나 파일명은 자유롭게 작성 가능합니다.
# articles/serializers.py
from rest_framework import serializers
from .models import Article
class ArticleListSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = ('id', 'title', 'content',)
- ModelSerialzier은 Django 모델과 연결된 Serializer 클래스입니다.
- url 및 view 함수를 작성합니다.
# articles/urls.py
urlpatterns = [
path('articles/', views.article_list),
]
# articles/viws.py
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)
1-2. 이전 view 함수와의 비교
똑같은 데이터를 HTML에 출력되도록 페이지와 함께 응답했던 과거의 view 함수, JSON 데이터로 serialization 하여 페이지 없이 응답하는 현재의 view 함수입니다.
1-3. 'api_view' decorator
- DRF view 함수에서는 필수로 작성되며 view 함수를 실행하기 전 HTTP 메서드를 확인
- 기본적으로 GET 메서드만 허용되며 다른 메서드 요청에 대해서는 405 Method Not Allowed로 응답
- DRF view 함수가 응답해야 하는 HTTP 메서드 목록을 작성
1-4. GET - Detail
- 단일 게시글 데이터 조회하기
- 각 게시글의 상세 정보를 제공하는 ArticleSerializer 정의
# articles/serializers.py
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = '__all__'
- url 및 view 함수 작성
# articles/urls.py
ulrpatterns = [
...
path('articles/<int:article_pk>/', views.article_detail),
]
# articles/views.py
from .serializers import ArticleListSerializer, ArticleSerializer
@api_view(['GET'])
def article_detail(request, article_pk):
article = Article.objects.get(pk=article_pk)
serializer = ArticleSerailizer(article)
return Response(serializer.data)
'백엔드' 카테고리의 다른 글
Django에 대하여(33)_DRF - DELETE & PUT (0) | 2024.05.21 |
---|---|
Django에 대하여(32)_DRF - POST (0) | 2024.05.20 |
Django에 대하여(30)_DRF with Single Model (0) | 2024.05.18 |
Django에 대하여(29)_DRF & Serialization (0) | 2024.05.17 |
Django에 대하여(28)_자원의 표현 (0) | 2024.05.16 |