1. ✅ 딕셔너리 접근 방식: [] ❌ → . ✅
Django 템플릿에서는 파이썬 딕셔너리처럼 ['key']로 접근할 수 없습니다.
❌ 일반적인 파이썬 방식 (사용 불가)
{{ my_dict['title'] }}
✅ DTL 방식 (dot notation)
{{ my_dict.title }}
왜?
- DTL은 파이썬이 아니라 Django가 만든 템플릿 전용 언어이기 때문입니다.
- dot notation은 딕셔너리 키, 객체의 속성, 모델의 필드 모두를 유연하게 처리합니다.
2. ✅ 함수 호출도 괄호 없이 사용
Django 템플릿에서는 함수를 호출하지 않습니다. 즉, ()를 붙이지 않아요.
❌ 파이썬 함수 호출
{{ my_function() }}
✅ DTL 방식 (함수 결과를 context에서 전달받은 변수처럼 사용)
{{ my_function }}
즉:
템플릿에 전달된 값이 함수라면, Django는 이를 실행하고 그 리턴값을 출력합니다.
3. ✅ Django Template은 "비슷하지만 다른 문법"
DTL은 파이썬처럼 생겼지만, 다른 문법 규칙이 많습니다.
예를 들어:
파이썬 문법 DTL 문법
| dict['key'] | dict.key |
| func() | func |
| "A" + "B" | `{% with new_val=A |
🧪 예시 코드 (통합)
# views.py
def my_view(request):
context = {
"user_info": {"name": "Minjoo"},
"greeting": get_greeting() # 이건 실행된 결과
}
return render(request, "my_template.html", context)
def get_greeting():
return "Hello, DTL!"
{# my_template.html #}
<p>{{ user_info.name }}</p> {# 딕셔너리도 .으로 접근 #}
<p>{{ greeting }}</p> {# 이미 실행된 함수 결과 출력 #}
✅ 요약
기능 DTL에서의 사용법
| 딕셔너리 key 접근 | {{ dict.key }} |
| 함수 호출 결과 | {{ function }} (괄호 없이) |
| 파이썬이 아님 | 파이썬처럼 보이지만 내부적으로 다름 |
'Programming > Django' 카테고리의 다른 글
| [Python Django - The Practical Guide] Templates & Static Files (2) | 2025.07.18 |
|---|---|
| [Django] 템플릿에서 정적 파일(static file) 경로를 동적으로 만드는 방법 (0) | 2025.07.18 |
| [Python Django - The Practical Guide] Urls & Views (2) | 2025.07.17 |
| [Python Django - The Practical Guide] Course Setup (2) | 2025.07.16 |
| [Python Django - The Practical Guide] Getting Started (0) | 2025.07.16 |