안녕하세요
이번 시간에는 웹 프레임워크 Django의 동작원리와 라우팅에 대해 알아보겠습니다.
1. Django 란?
Django는 웹 애플리케이션 개발을 위한 Python 기반의 프레임워크입니다. Django는 MVT(Model-View-Template) 아키텍처 패턴을 기반으로 하며, 웹 요청(Request)과 응답(Response) 사이의 처리 과정을 자동화합니다.
2. Django의 동작 원리 알아보기
Django의 동작 원리는 다음과 같습니다.
(1) 클라이언트가 웹 페이지에 접속합니다. 이 때, URL(Uniform Resource Locator)을 입력합니다.
(2) Django는 해당 URL에 대한 요청을 받습니다.
(3) URLconf(URL Configuration)을 이용하여 URL을 해석하고, 어떤 View 함수가 이 요청을 처리할지 결정합니다.
(4) View 함수에서 필요한 데이터를 모델에서 가져옵니다. 모델은 데이터베이스에서 데이터를 가져옵니다.
(5) 가져온 데이터를 템플릿(Template)으로 전달합니다.
(6) 템플릿에서 전달받은 데이터를 HTML 형식으로 변환하여 응답(Response)합니다.
(7) 클라이언트는 응답을 받아 브라우저에 웹 페이지를 표시합니다.
3. URLconf 란? (라우팅)
URLconf는 URL과 View 함수를 연결하는 매핑 정보를 담고 있는 설정 파일입니다.
Django는 URLconf를 통해 URL을 해석하여 View 함수를 호출합니다. URLconf를 통해 URL을 해석하는 방식은 다양합니다. 기본적으로 Django는 urls.py 파일에 정의된 URLconf를 사용합니다.
Django는 URLconf에서 URL을 해석할 때, 정규 표현식(Regular Expression)을 이용합니다. 이를 통해 URL을 유연하게 해석할 수 있습니다. 예를 들어, /blog/<int:pk>/와 같은 URL을 해석할 때, <int:pk> 부분은 정수형(pk) 데이터를 가지는 변수로 해석됩니다.
Django의 URLconf를 사용하여 View 함수를 호출하면, View 함수에서는 모델과 템플릿을 이용하여 데이터를 처리합니다. 이후, 템플릿에서 전달받은 데이터를 HTML 형식으로 변환하여 응답(Response)합니다. 이를 통해 Django는 웹 애플리케이션 개발을 보다 쉽고 편리하게 처리할 수 있습니다.
1. 기본적인 URLconf
urlpatterns = [
path('admin/', admin.site.urls),
]
다음은 가장 기본적인 형태의 URLconf 입니다.
2. 정규 표현식 URLconf
from django.urls import path
from . import views
urlpatterns = [
path('blog/<int:pk>/', views.blog_detail, name='blog_detail'),
]
다음은 URLconf에서 정규 표현식을 사용하는 하나의 예시입니다.
3. URLconf include 함수
include() 함수를 사용하여 URLconf 파일을 포함시키면, 해당 URLconf 파일에서 정의한 URL 패턴들을 현재 URLconf 파일에서 사용할 수 있습니다. 이를 통해 Django 애플리케이션을 모듈화하여 개발할 수 있습니다.
예를 들어, 다음과 같이 blog/urls.py 파일을 생성하여 URL 패턴을 정의할 수 있습니다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('post/<int:pk>/', views.post_detail, name='post_detail'),
]
위 코드에서 blog/urls.py 파일은 blog 애플리케이션의 URLconf 파일입니다. 해당 파일에서는 index와 post_detail URL 패턴을 정의하고 있습니다.
이후, 다음과 같이 프로젝트의 urls.py 파일에서 include() 함수를 사용하여 blog 애플리케이션의 URLconf 파일을 포함시킬 수 있습니다.
from django.urls import include, path
urlpatterns = [
path('blog/', include('blog.urls')),
]
위 코드에서 include() 함수는 blog/urls.py 파일을 현재 URLconf 파일에 포함시키고 있습니다. 따라서 /blog/ URL에 대한 요청이 발생하면, blog/urls.py 파일에서 정의한 URL 패턴이 적용됩니다.
이러한 방식으로 URLconf 파일을 포함시키면, Django 애플리케이션을 더욱 모듈화하여 개발할 수 있습니다.
이번 시간에는 웹 프레임워크인 Django의 동작 원리와 라우팅에 대해 알아봤습니다.
감사합니다.
'Framework > Django' 카테고리의 다른 글
[Django] Bootstrap4에 대해 알아보고 Django에 Bootstrap4 부트스트랩 적용하기 (0) | 2021.01.30 |
---|---|
[Django] Django MTV(Model-View-Controller) 디자인 패턴 알아보기 (0) | 2021.01.30 |
[Django] Django 관리자 기능에 대해 알아보고 관리자 페이지 실습하기 (0) | 2021.01.30 |
[Django] Django에서 Model에 대해 알아보고 Model 생성 실습하기 (0) | 2021.01.30 |
[Django] Django에서 템플릿 확장의 개념과 템플릿 확장 적용하는 방법 실습하기 (0) | 2021.01.30 |
클라우드, 개발, 자격증, 취업 정보 등 IT 정보 공간
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!