728x90
반응형

이번엔 우리가 새로운 라우터를 만들어보자. 아래 명령어 한 줄로 손쉽게 앱을 하나 만들 수 있다.

$ python manage.py startapp api_server

 

 

1. 먼저 Model을 수정해준다.

/api_server/models.py

from django.db import models


class APIServer(models.Model):
    title = models.CharField(max_length=70, default='')
    link = models.URLField()
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

 

2 pythonProject 폴더 안 settings.py에 api_server 앱을 추가해준다.

/pythonProject/settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'api_server'
]

 

3. 새 마이그레이션을 생성한다.

$ python manage.py makemigrations
$ python manage.py migrate

 

4. Serializer 세팅을 위해 아래와같이 파일을 만든다.

/api_server/serializer.py

from rest_framework import serializers
from .models import APIServer


class APIServerSerializer(serializers.ModelSerializer):
    class Meta:
        model = APIServer
        fields = ['title']
Serializer 는 queryset 과 model instance 같은 것들을 쉽게  JSON 또는 XML 의 데이터 형태로 렌더링 할 수 있게 해줍니다. 우리는 APIServer 모델을 serialize 해줘야 하기 때문에 ModelSerializer를 사용합니다.

 

5. views 파일을 수정해준다.

/api_server/views.py

from rest_framework import viewsets
from .serializers import APIServerSerializer
from .models import APIServer


class APIServerRouter(viewsets.ModelViewSet):
    queryset = APIServer.objects.all()
    serializer_class = APIServerSerializer

 

rest_framework 의 viewset 을 사용하면 CRUD 로직을 짜지 않아도 사용 가능하게 해준다.

 

6. pythonProject 폴더의 urls.py 파일을 수정해준다.

/pythonProject/urls.py

from django.contrib import admin
from django.urls import path, include
from rest_framework import routers
from api_server.views import APIServerRouter

router = routers.DefaultRouter()
router.register('apiserver', APIServerRouter)

urlpatterns = [
    path('admin/', admin.site.urls),

    path('', include(router.urls)),

    path('api-auth/', include('rest_framework.urls'))
]

 

7. 서버를 시작해 8000번 포트를 켜보자.

 

8. /apiserver 경로로 들어가보면 GET 과 POST 메소드를 GUI로 사용할 수 있다.

(GET, POST, GET/[id], PUT/[id], DELETE/[id])

728x90
반응형

+ Recent posts