장고 뷰: URL 패턴 및 템플릿 시스템 사용법
2023. 12. 3. 19:36ㆍ개발 문서/Django
728x90
반응형
장고 뷰: URL 패턴 및 템플릿 시스템 사용법
1. Django 뷰 이해하기
- Django에서 뷰(View)는 웹 애플리케이션의 비즈니스 로직을 담당하는 부분이다.
- 클라이언트의 요청에 따라 데이터를 가공하고, 해당하는 템플릿을 렌더링하여 응답을 생성한다.
2. URL 패턴 정의하기
urls.py파일을 통해 어떤 URL이 어떤 뷰 함수와 연결되는지 정의한다.- URL 패턴은 정규표현식을 사용하여 유연하게 매칭할 수 있다.
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('home/', views.home, name='home'),
path('article/<int:article_id>/', views.article_detail, name='article_detail'),
]
3. 뷰 함수 작성하기
- 뷰 함수는 HTTP 요청을 받아 처리하고, 필요한 데이터를 가공하여 템플릿에 전달한다.
HttpResponse객체를 통해 응답을 생성하거나, 특정 템플릿을 렌더링하여 반환한다.
# views.py
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponse
from .models import Article
def home(request):
articles = Article.objects.all()
return render(request, 'home.html', {'articles': articles})
def article_detail(request, article_id):
article = get_object_or_404(Article, pk=article_id)
return render(request, 'article_detail.html', {'article': article})
4. 템플릿 시스템 활용하기
- Django의 템플릿 시스템은 HTML 파일에서 동적으로 데이터를 표시할 수 있게 해준다.
- 템플릿 변수, 필터, 태그 등을 사용하여 템플릿을 작성한다.
<!-- home.html -->
{% for article in articles %}
<h2><a href="{% url 'article_detail' article.id %}">{{ article.title }}</a></h2>
<p>{{ article.content }}</p>
{% endfor %}
<!-- article_detail.html -->
<h1>{{ article.title }}</h1>
<p>{{ article.content }}</p>
5. 컨텍스트 변수 전달하기
- 뷰에서 템플릿으로 데이터를 전달하기 위해 컨텍스트 변수를 활용한다.
- 필요한 데이터를 딕셔너리 형태로 전달하면 템플릿에서 해당 변수를 사용할 수 있다.
# views.py
def home(request):
articles = Article.objects.all()
return render(request, 'home.html', {'articles': articles})
6. URL Reverse 사용하기
reverse함수를 사용하여 URL 패턴의 이름을 이용해 URL을 동적으로 생성할 수 있다.- 뷰 함수 내부에서 URL을 하드코딩하지 않고 유지보수성을 높일 수 있다.
# views.py
from django.urls import reverse
def article_detail(request, article_id):
article = get_object_or_404(Article, pk=article_id)
url = reverse('article_detail', args=[article.id])
return render(request, 'article_detail.html', {'article': article, 'url': url})
7. 정적 파일 및 미디어 파일 처리
static디렉토리를 통해 정적 파일을 관리하고,media디렉토리를 통해 사용자가 업로드한 파일을 관리한다.- 템플릿에서
{% load static %}을 통해 정적 파일을 사용할 수 있다.
<!-- home.html -->
{% load static %}
<img src="{% static 'images/example.jpg' %}" alt="Example Image">
8. 결론
Django에서 뷰, URL 패턴, 템플릿 시스템은 웹 애플리케이션의 핵심을 이루는 요소이다. URL 패턴을 통해 어떤 요청이 어떤 뷰로 연결되는지 정의하고, 뷰 함수에서는 비즈니스 로직을 처리하고 템플릿에 데이터를 전달한다. 효율적인 URL 설계와 동적인 템플릿을 통해 Django의 강력한 기능을 최대한 활용하자.
'개발 문서 > Django' 카테고리의 다른 글
| Django ORM의 강력한 기능과 최적화 팁 (0) | 2023.12.05 |
|---|---|
| Django 폼: 데이터 입력 및 유효성 검사 (1) | 2023.12.04 |
| 장고 모델 디자인: 데이터베이스와의 상호 작용 (0) | 2023.12.02 |
| Django의 핵심 개념과 원리: MTV 아키텍처의 이해 (1) | 2023.12.02 |
| Django 프로젝트 시작하기 세팅 (0) | 2023.11.30 |