URLs
이전 문서에서 장고 관리자를 실행하기 위해서 웹 브라우저에 http://127.0.0.1:8000/admin/ URL을 입력하여 관리자 사이트에 접속했습니다. 이처럼 장고는 URLConf(URL Configuration)를 사용하여 요청 URL과 일치하는 뷰(View)를 찾습니다. 프로젝트에서 urls.py를 열어보면, 아래 코드를 확인 할 수 있습니다.
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
장고는 admin/으로 시작하는 URL을 뷰와 대조하여 찾습니다. 어떠한 패턴을 갖는 URL을 모두 작성 하기 어려우므로, 정규표현식을 사용하여 입력합니다. 장고 URL에 대한 공식 도큐먼트는 https://docs.djangoproject.com/en/2.0/topics/http/urls/에서 살펴볼 수 있습니다. 이제 애플리케이션에 새로운 URL을 입력하고 이에 연결되는 뷰를 작성하도록 하겠습니다. 블로그 애플리케이션 디렉토리에서 urls.py 파일을 새로 생성하고 다음과 같이 코드를 작성합니다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.post_list, name='post_list'),
]
post_list라는 뷰를 루트 URL('')에 추가하였습니다. 이 패턴은 http://127.0.0.1:8000/ URL로 요청이 들어왔을 때 views.post_list 뷰를 보여줍니다. 마지막 파라미터인 name은 URL에 별칭을 부여한 것으로써 뷰를 식별하기 위한 용도입니다. 다시 프로젝트 내 urls.py로 돌아가서 아래처럼 코드를 수정합니다. 요청 URL을 블로그 애플리케이션의 urls.py에서 처리하기 위해서 include 모듈을 import해야 합니다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
]
이제 루트 URL('')로 들어오는 요청들은 앞서 작성했던 블로그 애플리케이션의 urls.py로 연결됩니다.
뷰(View)
뷰는 애플리케이션에서 요청에 대한 처리 로직을 작성합니다. 앞서 views.post_list 뷰를 URL에 연결하였으므로, 해당 뷰를 작성하기 위해서 블로그 애플리케이션 내 views.py를 수정합니다.
from django.shortcuts import render
def post_list(request):
return render(request, 'blog/post_list.html', {})
이 뷰에서는 블로그 디렉토리의 post_list.html 문서(HTML)를 웹 브라우저에 렌더(시각화)합니다. http://127.0.0.1:8000/에 접속하면, 다음 오류(404:Page not found)를 웹 브라우저에서 표시합니다. 아직 우리 프로젝트에서는 블로그 디렉토리 안에 post_list.html이라는 HTML 문서가 존재하지 않기 때문입니다.
다음 문서에서는 간단한 post_list.html 문서를 작성하도록 하겠습니다.
'Pyhon > Django' 카테고리의 다른 글
[Pyhon/Django] 장고 기초#009. 장고 ORM 쿼리셋(Queryset) (0) | 2022.01.01 |
---|---|
[Pyhon/Django] 장고 기초#008. 장고 템플릿(Template) & HTML (0) | 2022.01.01 |
[Pyhon/Django] 장고 기초#006. 장고 관리자(Administration) (0) | 2021.12.29 |
[Pyhon/Django] 장고 기초#005. 장고 모델(Model) 생성 (0) | 2021.12.13 |
[Pyhon/Django] 장고 기초#004.Python 프로그래밍을 위한 IDE 설치하기 (0) | 2021.12.13 |