REST framework
Django REST framework 곡μλ¬Έμμ μΌλΆ κΈλ€μ λ³΄κ³ μ 리ν λ΄μ©μ΄λ€.
front-endμ back-endμ μμ ν¨μ¨μ±μ λμ΄κΈ° μν΄μλ κ°λ°μμμ μμ ν ꡬλ³λλ κ²μ΄ μ΄μμ μ΄λ©°, κ·Έλ¬κΈ° μν΄μλ REST APIκ° νμνλ©°, μ¬νμ©μ±λ λμμ§λ€.
μ¬κΈ°μλ 곡μλ¬Έμ tutorialμ λ³΄κ³ λ°λΌν΄λ³΄μμΌλ©°, μμΈν μ€λͺ μ λ€μ λμ¨λ€.
settings
$ pip install djangorestframework
# settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
]
μ€μΉκ° μλ£λλ©΄ INSTALLED_APPS
μ μΆκ°ν΄μ€λ€.
νλ‘μ νΈ μμνκΈ°
$ django-admin startproject tutorial
$ cd tutorial
$ django-admin startapp quickstart
$ ./manage.py migrate
$ ./manage.py createsuperuser --email admin@example.com --username admin
Serializers tutorial/quickstart
νμμ serializers.py
νμΌμ λ§λ€μ΄μ€λ€.
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url','username','email','groups']
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ['url', 'name']
Views tutorial/quickstart/views.py
νμΌμ μ΄μ΄ λ€μκ³Ό κ°μ΄ μμ νλ€.
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from quickstart.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
URLs
from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from quickstart import views
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
urlpatterns = [
path('', include(router.urls)),
path('api-auth/',include('rest_framework.urls',namespace='rest_framework'))
]
Pagination
κ° νμ΄μ§λ§λ€ λͺκ°μ κ²μκΈμ λ ΈμΆν μ§ μ§μ ν μ μλ€.
# tutorial/settings.py
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 15
}
tutorial/settings.py
νλ¨μ μμ κ°μ΄ μ½λλ₯Ό μΆκ°ν΄μ€λ€.
$ ./manage.py runserver
μ νν http://localhost:8000
μΌλ‘ λ€μ΄κ°λ³΄λ©΄ νμΈν μ μλ€.
Last updated
Was this helpful?