์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ์ค์ ํ๋ URL
์ด ์ด๋ป๊ฒ Router
๊น์ง
๋ฐ์ ํด์ ์ฌ์ฉ๋์ด ์๋์ง์ ๋ํด์ ์์๋ณด์.
urlpatterns = [
path(...)
...
]
retrieve()
์list()
์ ๊ธฐ๋ฅ
list()
,create()
,retrieve()
,update()
partial_update()
,destroy()
์ ๊ธฐ๋ฅ
์์ ViewSet
์ ํ๋์ path
ํจ์๋ง์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๊น?
ํ๋์ path
๋ก ListView
, DetailView
์ CRUD๊ฐ ๋ชจ๋ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ฐ?
๋ถ๊ฐ๋ฅํ๋ค. ํ์ฐ์ ์ผ๋ก 2๊ฐ ์ด์์ path
๊ฐ ํ์ํ๋ค.
path
๋ฅผ ํ๋๋ก ๋ฌถ์ด(pathํจ์์ ๋ ๋ฒ์จฐ ์ธ์์ ํจ์๋ฅผ ๋ฌถ๋๋ค)์ค ๋ฐฉ๋ฒ์ด ํ์๋ก ํ๋ค.
as_view({'http_method' : '์ฒ๋ฆฌํ ํจ์'})
์๋์ ๊ฐ์ด as_view
ํจ์๋ฅผ ์์ฑํ๊ณ urlpatterns
์ ๋ฃ์ด์ฃผ๋ฉด ์ ์๋ํ๋ค.
์์ธํ ๋ด์ฉ์ Django REST framework ๊ณต์๋ฌธ์์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
path = PostViewSet.as_view({
'get': 'retrieve',
'put': 'update',
'patch': 'partial_update',
'delete': 'destroy'
})
urlpatterns = [
path('', path)
]
์์์ ์์ฑํ๋ ๊ด๋ก์ ์ธ URL
๋งตํ ๋จ๊ณ๋ฅผ ์๋์ผ๋ก ๊ตฌํํด์ฃผ๋ ๋ฐฉ์
rest_framework
์router
์์DefaultRouter
์ถ๊ฐ
from rest_framework.router import DefaultRouter
DefaultRouter
๊ฐ์ฒด ์์ฑ ๋ฐ ๋ฑ๋ก
URL Prefix
๋ 127.0.0.1:8000/post
์ ๊ฐ์ URL
์์ post
๋ถ๋ถ ์ด๋ค.
router = DefaultRouter()
router.register(<URL Prefix>, <View Logic>)
urlpatterns
์router
์urls
์ถ๊ฐ
urlpatterns = [
path('', include(router.urls)),
]