
| 기능 | 설명 |
|---|---|
| APIView | RESTful API의 GET, POST, PUT, DELETE 메소드를 구현할 수 있는 Django 뷰. |
| ViewSet | 여러 개의 API 동작을 하나의 클래스에 모아둔 구조로, 코드 재사용성이 높음. |
| Serializer | Django 모델 데이터를 JSON, XML 등으로 변환하고, 역직렬화도 지원. |
| Permission | API 접근 권한을 관리하며, 사용자 인증 및 권한을 설정할 수 있음. |
django-seed 라이브러리를 사용해 테스트 데이터를 삽입할 것.터미널에 다음 입력.
pip install django-seed
INSTALLED_APPS에 django_seed를 추가.
# settings.py
INSTALLED_APPS = [
# other apps...
'django_seed',
]
아래의 명령어를 사용해 articles 테이블에 n개의 더미 데이터 생성.
python manage.py seed articles --number=n
json-drf 추가.from django.urls import path
from . import views
app_name = "articles"
urlpatterns = [
path("html/", views.article_list_html, name="article_list_html"),
path("json-drf/", views.json_drf, name="json_drf"),
]
Article 모델 데이터를 JSON 으로 변환해줌.from rest_framework import serializers
from .models import Article
class ArticleSerializer(serializers.ModelSerializer):
class Meta:
model = Article
fields = "__all__"
json_drf 뷰에서 Article 모델의 모든 데이터를 JSON으로 반환함.from rest_framework.decorators import api_view
from rest_framework.response import Response
from .serializers import ArticleSerializer
@api_view(["GET"])
def json_drf(request):
articles = Article.objects.all()
serializer = ArticleSerializer(articles, many=True)
return Response(serializer.data)
import requests url = "http://127.0.0.1:8000/api/v1/articles/json-drf" response = requests.get(url) print(response) print(response.json())
python manage.py runserverhttp://127.0.0.1:8000/json-drf/ 를 입력해 DRF 로 구현한 API 페이지에 접근.