Backend - urlconf

kukudas·2022년 2월 26일
0

industry-app-client

목록 보기
5/11

이제 manage.py가 있는 곳에서 서버를 돌리면

python manage.py runserver

mysite.settings를 사용하니 해당 세팅을 사용하고

// manage.py
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings')

mysite/settings.py에서 mysite/urls.py를 ROOT_URLCONF로 사용하니 mysite/ursl.py에 있는 urlpattern들로 처음에 매칭을 해줌.

// mysite/setting.Spy
ROOT_URLCONF = 'mysite.urls'

이제 그럼 mysite/ursl.py을 보면 각각의 앱에 대한 url을 정의해 놨음.

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/v1/blog/', include('blog.urls')),
    path('api/v1/account/', include('account.urls')),
    path('api/v1/esi/', include('esi.urls')),
]

blog/urls.py를 보면 아래처럼 router에 뷰셋들을 등록했고 이 라우터를 urlpatterns에 넣어서 DRF가 자동으로 해당 뷰셋들에 대한 url을 ''(api/v1/blog) 기준으로 자동으로 생성해줌.

router = DefaultRouter(trailing_slash=False)
router.register(r'post', views.PostViewSet2, basename='posts')
router.register(r'comment', views.CommentViewSet, basename='comments')
urlpatterns = [
    # drf
    path('', include(router.urls)),
]

따라서 blog/views.py에서 list()http://127.0.0.1:8000/api/v1/blog/post로 접근 할 수 있음.

// blog/views.py
class PostViewSet2(viewsets.GenericViewSet):
    # 기본 설정이 is_authenticaed여서 이거 해줘야함
    queryset = Post.objects.all()
    serializer_class = PostSerializer

    # http GET http://127.0.0.1:8000/api/v1/blog/post 
    def list(self, request):

0개의 댓글