์ด์ ๊ณผ ๋์ผํ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์ ์๋ตํฉ๋๋ค.
django-admin startproject <project-name>
cd <project-name>
python manage.py startapp <app-name>
settings.py
์ App,rest_framework
์ถ๊ฐmodels.py
์ ๋ชจ๋ธ ์์ฑ ๋ฐmigrate
serializer.py
์์ฑ ๋ฐ ์์ฑ
์ฌ์ฉํ ๋ชจ๋ธ, serializer
, rest_framework
์ generics
๋ฅผ ์ถ๊ฐ
from .models import Post
from .serializer import PostSerializer
from rest_framework import generics
generics
์ ListCreateAPIView
๋ mixins
์์ ์ฌ์ฉํ
list
ํจ์์ create
ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋ Class
๋ค.
class PostList(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
generics
์ RetrieveUpdateDestroyAPIView
๋ํ
mixins
์์ ์ฌ์ฉํ ํจ์๋ค๊ณผ ๋์ผํ ๊ธฐ๋ฅ์ ํ๋ค.
class PostDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
์ด์ ๊ณผ ๋์ผํ๊ฒ ์ฑ ๋ด๋ถ์ urls.py
์์ฑ ๋ฐ ์์ฑ
from django.urls import path
from rest_framework.urlpatterns import format_suffix_patterns
from . import views
urlpatterns = [
path("post", views.PostList.as_view()),
path("post/<int:pk>", views.PostDetail.as_view()),
]
urlpatterns = format_suffix_patterns(urlpatterns)
ํ๋ก์ ํธ ํด๋ ๋ด๋ถ์ urls.py
์ include
from django.contrib import admin
from django.urls import path, include
import post.urls
urlpatterns = [
path('admin/', admin.site.urls),
path('', include(post.urls)),
]
http://127.0.0.1:8000/post
๋ก ์ ์ํ๋ฉด ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ชจ๋ ๊ธฐ๋ฅ๋ค์ด ์ด์ ๊ณผ ๊ฐ์ด ๋์ํ๋ค.
PostList
ํด๋์คPOST
๋งค์๋ ํ ์คํธ
PostList
ํด๋์คGET
๋งค์๋ ํ ์คํธ
PostDetail
ํด๋์คGET
๋งค์๋ ํ ์คํธ
PostDetail
ํด๋์คPUT
๋งค์๋ ํ ์คํธ
PostDetail
ํด๋์คDELETE
๋งค์๋ ํ ์คํธ