카테고리 없음

주소와 화면을 연결하는 URL과 뷰

Linuxpia 2025. 4. 25. 15:31
반응형

주소와 화면을 연결하는 URL과 뷰

Django에서 웹 페이지의 주소(URL)와 실제 화면(HTML 등)을 연결하려면 URLconf(URL configuration)뷰(View)를 작성해야 합니다. 이 두 요소는 Django 웹 프레임워크의 핵심 구조로, 각각의 역할은 다음과 같습니다.


1. URLconf (URL 설정)

  • URLconf는 사용자가 입력한 주소(URL)를 받아서 어떤 뷰 함수로 전달할지를 결정합니다.
  • urls.py 파일에 설정합니다.

예시: myapp/urls.py

from django.urls import path
from . import views  # 같은 디렉토리의 views.py를 불러옴

urlpatterns = [
    path('', views.home, name='home'),           # http://도메인/ -> home() 실행
    path('about/', views.about, name='about'),   # http://도메인/about/ -> about() 실행
]

2. 뷰 (View)

  • 뷰는 URLconf에서 연결된 요청을 받아 실제 처리하고 결과를 화면에 출력합니다.
  • views.py 파일에 함수형 또는 클래스형으로 작성합니다.

예시: myapp/views.py

from django.shortcuts import render

def home(request):
    return render(request, 'home.html')  # home.html 템플릿을 응답

def about(request):
    return render(request, 'about.html')  # about.html 템플릿을 응답

3. 템플릿 (HTML 화면 파일)

  • 뷰에서 render() 함수를 통해 호출되는 HTML 파일입니다.
  • 일반적으로 templates 폴더 안에 위치합니다.

예시: templates/home.html

<!DOCTYPE html>
<html>
<head><title>홈</title></head>
<body>
  <h1>홈 페이지입니다</h1>
</body>
</html>

4. 프로젝트 전체 URL 설정 (project/urls.py)

  • myapp/urls.py와 같이 앱 단위로 분리된 URL 설정을 프로젝트 전체에서 포함시킵니다.
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),  # myapp의 urls.py를 포함
]

요약

구성 요소 설명
urls.py 주소를 어떤 뷰로 보낼지 설정
views.py 요청에 따른 로직 처리 및 화면 출력
templates/*.html 사용자에게 보여줄 HTML 작성
render() HTML 파일을 브라우저에 응답

 


이러한 구조를 통해 Django는 URL → View → Template 흐름으로 웹 페이지를 동작시킵니다.
필요에 따라 GET/POST 요청 처리, 데이터베이스 조회, 폼 입력 처리 등도 뷰에서 담당합니다.