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
반응형
'Back-End > Django' 카테고리의 다른 글
Django | 웹 크롤링 서버 만들기(Linux) | Selenium Crawling Server in Linux | 시작하기 (0) | 2022.07.07 |
---|---|
Django | 웹 크롤링 서버 만들기(Linux) | Selenium Crawling Server in Linux | 환경 세팅 (0) | 2022.07.07 |
Django | Scrapy ( 크롤링 프레임워크 ) (0) | 2022.07.06 |
Django | REST API 서버 만들기 | Django REST Framework (0) | 2022.06.29 |
Django | REST API 서버 만들기 | 시작하기 (0) | 2022.06.29 |