Template Language
π‘ νλ©΄μ ꡬμ±νλ Templateμ μμ±ν λ λ³΄λ€ νΈλ¦¬νκ² μμ±ν μ μλλ‘ λμμ£Όλ μΈμ΄
( β‘ HTMLλ¬Έμλ₯Ό μμ±ν λ νλ‘κ·Έλλ°νλ― μμ±ν μ μκ² ν΄μ€λ€.)
ν
νλ¦Ώ μΈμ΄μλ ν¬κ² 4κ°μ§ μ’
λ₯κ° μλ€.
I. ν
νλ¦Ώ λ³μ
{{ λ³μλͺ
}}
- ν
νλ¦Ώμ΄ λ λλ λ μ°λ¦¬κ° μ§μ ν μλ―Έμλ λ°μ΄ν°λ‘ λ³νλλ€.
- viewμμ κ°κ³΅ν λ°μ΄ν° β‘ templateμΌλ‘ μνλ λ°μ΄ν°λ₯Ό μ λ¬νκ³ , templateμ ν
νλ¦Ώ λ³μλ₯Ό μ΄μ©ν΄μ μ λ¬λ°μ λ°μ΄ν°λ₯Ό μ¬μ©νλ€.
{{ λ³μλͺ
.μμ± }}
- ν
νλ¦Ώ λ³μλ μ (.)μ°μ°μλ₯Ό μ§μνλλ°, μ΄ μ°μ°μλ ν
νλ¦Ώ λ΄λΆλ³μ μμ±μ μ κ·Όν λ μ¬μ©νλ€.
- μ)
- μμ κ°μ΄ λ³μκ° μμ λ μ (.)μ°μ°μλ‘ λ΄λΆμμ±μΈ keyμ μ κ·Όν λ μ¬μ©κ°λ₯νλ€.
- λ³μλ λμ
λ리 μλ£νλΏλ§ μλλΌ, κ°μ²΄, 리μ€νΈ λ±λ μ¬μ©κ°λ₯νλ€.
0x01. μ (.)μ°μ°μ μ°μ μμ
II. ν
νλ¦Ώ νν°
{{ λ³μλͺ
| νν° }}
- ν
νλ¦Ώ λ³μλ₯Ό νΉμ νμμΌλ‘ λ³ννκΈ° μν΄ μ¬μ© (μλλ λλ¬Έμλ‘ νν°λ§ν κ²)
{{ λ³μλͺ
| νν°:μΈμ }}
- μΌλΆ νν°λ λ€μκ³Ό κ°μ΄ νν° λ€μ μΈμλ₯Ό νμλ‘ νλ€.
0x01. default
{{ λ³μλͺ
| default:"coffee" }}
- μ°Έμ‘°νλ ν
νλ¦Ώ λ³μκ° λΉμ΄ μκ±°λ λΆμΈν FalseμΌ κ²½μ° λ³νλλ κ°μ μ§μ νλ€.
λ³μκ° λΉμ΄ μκ±°λ Falseλ©΄ coffee λΌλ ν
μ€νΈλ‘ λ체 λλ€.
0x02. capfirst
{{ λ³μλͺ
| capfirst }}
- 맨 첫κΈμλ₯Ό λλ¬Έμλ‘ λ°κΏ μ€λ€.
0x03. random
{{ λ³μλͺ
| random }}
- λ°λ³΅ κ°λ₯ν ν
νλ¦Ώ λ³μμ λν΄ λ¬΄μμλ‘ νλλ₯Ό μΆμΆν΄ λ³ννλ€.
λ§μ½ variableμ΄ μ°Έμ‘°νλ κ°μ΄ [ "a", "b", "c", "d" ] μΈ λ¦¬μ€νΈνμ΄λΌλ©΄ ν
νλ¦Ώ λ³μκ° λ¦¬μ€νΈ λ΄μ νλμ μμλ‘ λ체 λλ€.
0x04. upper & lower
{{ λ³μλͺ
| upper }}
, {{ λ³μλͺ
| lower }}
- ν
νλ¦Ώ λ³μλ₯Ό λλ¬Έμ(upper) λλ μλ¬Έμ (lower)λ‘ λ³ννλ€.
0x05. ljust & rjust
{{ λ³μλͺ
| ljust:"length" }}
{{ λ³μλͺ
| rjust:"length" }}
- μ£Όμ΄μ§ κΈΈμ΄ λ΄μμ 곡백μ λ£μ΄ μΌμͺ½ μ λ ¬(ljust) λλ μ€λ₯Έμͺ½ μ λ ¬(rjust)μ ν λ¬Έμμ΄λ‘ λ³ννλ€.
μ΄ λ°μλ λͺ κ°μ§ νν°κ° λ μλλ° λͺ¨λ μΈμΈ νμλ λΉμ°ν μκ³ νμν λ μ°Ύμμ μ¬μ©νλ©΄ λλ€. λ λ§μ ν
νλ¦Ώ νν°μ λν μ 보λ μλ Django 곡μ λ¬Έμλ₯Ό μ°Έκ³
https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#ref-templates-builtins-filters
III. ν
νλ¦Ώ νκ·Έ
{% νκ·Έ %}
νΉμ
{% νκ·Έ %}
~ {% endνκ·Έ %}
- ν
νλ¦Ώμ μμ±ν λ λ‘μ§μ ν¨κ» λ£μ΄μ ν
νλ¦Ώμ νΈνκ² μμ±ν μ μλλ‘ ν΄μ€.
{% for %}
~ {% endfor %}
λ‘ λ°λ³΅λλ λΆλΆμ κ°λ¨νκ² μ²λ¦¬ν μλ μκ³ ,
{% if %}
~ {% else %} ~ {% endif %}
λ‘ μ‘°κ±΄μ λ°λΌ ν
νλ¦Ώμ λ¬λ¦¬ν μλ μκ³ ,
{% block %}
~ {% endblock %}
μ€λ³΅λλ λΆλΆμ μμμΌλ‘ μ²λ¦¬ν μλ μλ€.
0x01. for
{% for obj in values %} ~ {% endfor %}
- λ°λ³΅ κ°λ₯ν κ°μ²΄λ₯Ό λ°λ³΅νλ©° ν
νλ¦Ώμ μμ± ν μ μλ€. μλλ μ¬μ© μμ μ΄λ€.
{% for food in foods %}
<li> {{ food.name }} </li>
{% endfor %}
- λ§μ½ λͺ©λ‘μ μμμΌλ‘ λ°λ³΅νκ³ μΆλ€λ©΄ μλμ κ°μ΄ μ¬μ© ν μ μλ€.
{% for food in foods reversed %}
<li> {{ food.name }} </li>
{% endfor %}
- λ°λ³΅ κ°λ₯ν κ°μ²΄κ° λΉμ΄ μκ±°λ μ‘΄μ¬νμ§ μμ λλ μλμ κ°μ΄ μ¬μ© ν μ μλ€.
μλλ λ§μ½ foodsλΌλ κ°μ²΄κ° λΉμ΄μλ€λ©΄ {% empty %} κ΅¬λ¬Έμ΄ μ€νλλ€.
{% for food in foods %}
<li> {{ food.name }} </li>
{% empty %}
<li> There is no food. </li>
{% endfor %}
0x02. if
{% if value1 %} ~ {% elif value2 %} ~ {% else %} ~ {% endif %}
- νμ΄μ¬μμ μ¬μ©νλ 쑰건문과 ννκ° λΉμ·νλ€. μ€μ λ‘ μ¬μ© ν λλ μ°λ¦¬κ° μλ 쑰건문μ ννλ‘ μ¬μ©νλ©΄ λλ€.
{% if hungry %}
<p> Let's eat! </p>
{% elif sleepy %}
<p> You need some coffee. </p>
{% else %}
<p> Go back to work. </p>
{% endif %}
0x03. with
{% with value1=value2 %} ~ {% endwith %}
- 볡μ‘ν λ³μκ° μμ λ 'λ³λͺ
'μ λΆμ΄κΈ° μν΄ μ¬μ©ν©λλ€. with ꡬ문 λ΄μμλ value1μ value2 λμ μ¬μ©ν μ μμ΅λλ€.
0x04. block, static λ±λ±
- μ΄μ μ±ν°μμ νκ²λ€
μ΄ λ°μλ λͺ κ°μ§ ν
νλ¦Ώ νκ·Έκ° λ μλλ°, νν°μ λ§μ°¬κ°μ§λ‘ νμν λ μ°Ύμμ μ¬μ©νλ©΄ λλ€. ν
νλ¦Ώ νκ·Έμ λν λ λ§μ μ 보λ μλ Django 곡μ λ¬Έμλ₯Ό μ°Έκ³
https://docs.djangoproject.com/en/2.2/ref/templates/builtins/#ref-templates-builtins-tags
IV. ν
νλ¦Ώ μ£Όμ
{# μ£Όμ #}
- ν
νλ¦Ώ μΈμ΄λ΄μμ μ£Όμμ²λ¦¬λ₯Ό νκΈ° μν κ²μ΄λ€.