Django 템플릿에서 사전 요소에 액세스하는 방법
닷 표기법
사전 요소의 키 이름을 사용하여 닷 표기법을 사용할 수 있습니다. 예를 들어 다음과 같은 사전이 있다고 가정해 보겠습니다.
my_dict = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
템플릿에서 다음과 같이 name
, age
, city
키에 액세스할 수 있습니다.
{{ my_dict.name }}
{{ my_dict.age }}
{{ my_dict.city }}
템플릿 태그
dict
템플릿 태그를 사용하여 사전에 액세스할 수도 있습니다. 예를 들어 다음과 같이 dict
태그를 사용하여 name
, age
, city
키에 액세스할 수 있습니다.
{% dict my_dict %}
{{ key }}: {{ value }}
{% endfor %}
for 문
for
문을 사용하여 사전의 모든 키-값 쌍을 반복할 수도 있습니다. 예를 들어 다음과 같이 for
문을 사용하여 my_dict
사전의 모든 키-값 쌍을 반복할 수 있습니다.
{% for key, value in my_dict.items %}
{{ key }}: {{ value }}
{% endfor %}
get 속성
get
속성을 사용하여 사전에서 값을 안전하게 가져올 수 있습니다. 키가 사전에 존재하지 않으면 None
값을 반환합니다. 예를 들어 다음과 같이 get
속성을 사용하여 city
키의 값을 가져올 수 있습니다.
{{ my_dict.get("city") }}
예시
다음은 Django 템플릿에서 사전 요소에 액세스하는 방법을 보여주는 예입니다.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Django 템플릿에서 사전 요소에 액세스하기</title>
</head>
<body>
<h1>사전 요소에 액세스하기</h1>
<h2>닷 표기법</h2>
<p>{{ my_dict.name }}</p>
<p>{{ my_dict.age }}</p>
<p>{{ my_dict.city }}</p>
<h2>템플릿 태그</h2>
{% dict my_dict %}
<p>{{ key }}: {{ value }}</p>
{% endfor %}
<h2>for 문</h2>
{% for key, value in my_dict.items %}
<p>{{ key }}: {{ value }}</p>
{% endfor %}
<h2>get 속성</h2>
<p>{{ my_dict.get("city") }}</p>
</body>
</html>
이 예에서 my_dict
사전은 다음과 같습니다.
my_dict = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
예제 코드
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Django 템플릿에서 사전 요소에 액세스하기</title>
</head>
<body>
<h1>사전 요소에 액세스하기</h1>
<h2>닷 표기법</h2>
<p>{{ my_dict.name }}</p>
<p>{{ my_dict.age }}</p>
<p>{{ my_dict.city }}</p>
<h2>템플릿 태그</h2>
{% dict my_dict %}
<p>{{ key }}: {{ value }}</p>
{% endfor %}
<h2>for 문</h2>
{% for key, value in my_dict.items %}
<p>{{ key }}: {{ value }}</p>
{% endfor %}
<h2>get 속성</h2>
<p>{{ my_dict.get("city") }}</p>
</body>
</html>
my_dict = {
"name": "John Doe",
"age": 30,
"city": "New York"
}
설명:
{{ my_dict.name }}
: 이 코드는my_dict
사전의name
키 값을 출력합니다.{% dict my_dict %}
: 이 태그는my_dict
사전의 모든 키-값 쌍을 반복합니다.{{ key }}: {{ value }}
: 이 코드는 현재 반복되는 키-값 쌍의 키와 값을 출력합니다.
{{ my_dict.get("city") }}
: 이 코드는my_dict
사전의city
키 값을 안전하게 가져옵니다. 키가 사전에 존재하지 않으면None
값을 반환합니다.
대체 방법
템플릿 필터
default
및 lookup
템플릿 필터를 사용하여 사전 요소에 액세스할 수 있습니다.
default
필터
default
필터는 키가 사전에 존재하지 않으면 기본값을 반환합니다. 예를 들어 다음과 같이 default
필터를 사용하여 city
키의 값을 가져올 수 있습니다.
{{ my_dict.city|default:"Unknown" }}
lookup
필터
lookup
필터는 사전의 하위 키에 액세스하는 데 사용할 수 있습니다. 예를 들어 다음과 같이 lookup
필터를 사용하여 address
사전의 street
키 값을 가져올 수 있습니다.
{{ my_dict.address|lookup:"street" }}
템플릿 컨텍스트 프로세서
템플릿 컨텍스트 프로세서를 사용하여 사전을 템플릿 컨텍스트에 추가할 수 있습니다. 템플릿 컨텍스트에 사전이 추가되면 템플릿에서 닷 표기법을 사용하여 사전 요소에 액세스할 수 있습니다.
예를 들어 다음과 같은 템플릿 컨텍스트 프로세서를 만들 수 있습니다.
def my_context_processor(request):
return {"my_dict": {
"name": "John Doe",
"age": 30,
"city": "New York",
"address": {
"street": "123 Main St",
"city": "New York",
"state": "NY",
"zip_code": "10001"
}
}}
이 컨텍스트 프로세서를 settings.py
파일에 등록하면 다음과 같이 템플릿에서 my_dict
사전에 액세스할 수 있습니다.
{{ my_dict.name }}
{{ my_dict.age }}
{{ my_dict.city }}
{{ my_dict.address.street }}
사용자 정의 템플릿 태그
사용자 정의 템플릿 태그를 사용하여 사전에 액세스하는 데 사용할 수 있는 새 템플릿 태그를 만들 수 있습니다.
예를 들어 다음과 같은 사용자 정의 템플릿 태그를 만들 수 있습니다.
from django import template
register = template.Library()
@register.simple_tag
def get_dict_value(dict, key, default=None):
return dict.get(key, default)
이 태그를 사용하여 다음과 같이 템플릿에서 사전 요소에 액세스할 수 있습니다.
{% get_dict_value my_dict "city" "Unknown" %}
python django django-templates