라우팅(Routing)이란?
이전 알아본 경로를 바로 라우팅이라고 합니다. 다시 말하자면 사용자가 지정한 경로를 누가 처리할 것인가를 지정하는 것을 말합니다. 제일 먼저 신경써야 할 것이 라우팅이고 라우팅이 가장 중요하다고 할 수 있습니다.
다시 보자면 Project/urls.py -> App/urls.py -> view.def 로 생각할 수 있습니다.
4가지 경로를 살펴보도록 하겠습니다.
# http://127.0.0.1/ -> Home을 나타냄 (가장 초기값)
# http://127.0.0.1/app/
# http://127.0.0.1/create/
# http://127.0.0.1/read/1/
라우팅(Routing) 설정하는 방법
1. project 폴더 안에 있는 urls.py에서 urlpatterns를 정의 합니다.
2. 다른 urls.py로 위임을 하기 위해서 include를 import해주고 path를 지정해줍니다.
3. path('', include('myapp.urls')) -> include의 두번째 인자로 위임하려고 하는 app의 이름.urls를 입력해준다.
4. 기존 App에는 urls.py 파일이 없기 떄문에 project/urls.py 파일을 myapp에 복사를 해줍니다.
5. myapp에 path 첫번째 인자에 위에서 살펴볼 경로를 설정해줍니다.
6. views파일에 함수 index를 만들어줍니다.
7. myapp path 두번쨰 인자에 views의 함수를 작성해줍니다. -> index 함수를 실행하게됩니다. (views를 import해줘야합니다.)
8. index, create, read 함수를 생성해줍니다.
9. read의 경우 1의 자리를 가변으로 이용해 줄 수 있습니다.
# myproject/urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls'))
]
# myapp/ursl.py
from django.urls import path
from myapp import views
urlpatterns = [
path('', views.index),
path('create/', views.create),
path('read/<id>/', views.read)
]
# myapp/views.py
from django.shortcuts import render, HttpResponse
def index(request):
return HttpResponse('welcome')
def create(request):
return HttpResponse('Create')
def read(request, id):
return HttpResponse('Read'+id)
출처: https://www.youtube.com/watch?v=AafeZ6dxMzo&list=PLuHgQVnccGMDLp4GH-rgQhVKqqZawlNwG&index=5
'Django' 카테고리의 다른 글
[Django] method(GET, POST) (0) | 2022.01.28 |
---|---|
[Django] django를 쓰는 이유 (0) | 2022.01.28 |
[Django] 전체적인 경로 흐름 (0) | 2022.01.28 |