URL 라우팅이란 사용자의 요청 주소, 즉 URL에 따라 어떤 앱의 어떤 페이지를 보여줄지를 설정하는 것을 말합니다. 예를 들어 [프로젝트 URL]/admin/
주소로 요청이 오면 admin
앱의 페이지를 보여주는 식입니다.
이러한 설정이 MBIT/urls.py
에 정의되어 있습니다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
[프로젝트 URL]/
로 요청이 오면 우리가 만들 메인 페이지가 보이도록 해봅시다.
urls.py
를 다음과 같이 수정합니다.
from django.contrib import admin
from django.urls import path
from main import views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.index)
]
여기서 views.index
는 main/views.py
에서 작성할 함수입니다. 이 설정은 [프로젝트 경로]
로 요청이 오면 main/views.py
에 있는 index라는 함수를 실행하겠다는 의미입니다.
main/views.py
에 index
함수를 다음과 같이 정의합니다.
from .models import Question, Developer, Choice
def index(request):
developers = Developer.objects.all()
context = {
'developers': developers,
}
return render(request, 'index.html', context=context)
index 함수는 return 값으로 'index.html'을 render 해주며 이 코드는 index.html
을 페이지로 보여주겠다는 뜻입니다.
Developer.objects.all()
은 모든 Developer
의 요소들을 리스트같은 형태로 반환합니다.
<aside>
💡 정확히는 QuerySet
이라는 자료구조지만 List
처럼 활용이 가능합니다.
</aside>
context
딕셔너리에 담은 요소들은 index.html
에서 변수처럼 사용할 수 있습니다. 자세한 것은 다음 3) 템플릿 정의에서 설명합니다.