[drf]airbnb-api -3 @api_view

Hyeseong·2021년 3월 24일
0

들어가기 앞서

drf패키지를 설치 할게요.

pip install djangorestframework
(or pipenv install djangorestframework

프로젝트 셋팅 파일은 아래와 같이 수정합니다.

THIRD_PARTY_APPS = [
    "rest_framework",
]

INSTALLED_APPS = DJANGO_APPS + PROJECT_APPS + THIRD_PARTY_APPS

본론

core/views.py 파일을 삭제할게요.

config/urls.py파일을 수정 할게요.

기존 작성 되었던 path("rooms/", include("core.urls")), 부분은 삭제해주세요.

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path("admin/", admin.site.urls),
    path("api/v1/rooms/", include("rooms.urls")),
# 만약 api/v2/rooms/로 바뀌게 되면 뒤의 include의 내무 분자열도 version2라는 상태
# 변화를 명시적으로 해주어야한다. include('rooms.urls_v2')

# 아니면 앱안에 api라는 폴더를 만들고 분기시켜 v1, v2라는 폴더를 만들어서 관리할 수 도 있다.
# 만약 별도의 api폴더를 두고 아래에 v1, v2로 분기하면 views_v1.py or views_v2.py로 나눠 관리 할 수 도 있게 된다.
]


if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

rooms 앱의 urls.py작성을 아래와 같이 할게요.

from django.urls import path
from . import views

app_name = "rooms"

urlpatterns = [path("list/", views.list_rooms)]

url을 잡아 줬다면 뷰를 잡아보도록 하조.

동일 디렉토리에서 뷰파일로 간 다음 아래와 같이 작업할게요.

여기서는 Funciton Based View's @api_view를 만들어 볼건데요.
GET요청을 urls.py를 통해 들어오면 처리 할 수 있게 되요.
만약 POST 요청을 처리하고 싶다면 POST를 적어주면 되겠조.

from rest_framework.decorators import api_view
from rest_framework.response import Response # 요청에 대한 응답을 정리하여 클라이언트에 던져주는 클래스


@api_view(["GET"])
def list_rooms(request):
    return Response()

서버를 돌려서 웹페이지에서 확인 해볼게요.

만약 데코레이터의 인자로 DELETE를 넣어주면 이렇게 삭제 기능도 구현 할 수 있습니다.

profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글