django之Template
阿新 • • 發佈:2017-10-07
實例 mat bsp oop loop one first enc 日期
模板的組成
組成:HTML代碼+邏輯控制代碼
邏輯控制代碼組成
1 變量(使用雙大括號來引用變量):
語法格式: {{var_name}}
深度變量的查找(萬能的句點號)
在到目前為止的例子中,我們通過 context 傳遞的簡單參數值主要是字符串,然而,模板系統能夠非常簡潔地處理更加復雜的數據結構,例如list、dictionary和自定義的對象。
在 Django 模板中遍歷復雜數據結構的關鍵是句點字符 (.)。
變量的過濾器(filter)的使用
# 1 add : 給變量加上相應的值 # # 2 addslashes : 給變量中的引號前加上斜線# # 3 capfirst : 首字母大寫 # # 4 cut : 從字符串中移除指定的字符 # # 5 date : 格式化日期字符串 (time : 格式化時間字符串)
{{ value|date:‘H-m-d H:i:s‘ }}
# 6 default : 如果值是False,就替換成設置的默認值,否則就是用本來的值
# 7 default_if_none: 如果值是None,就替換成設置的默認值,否則就使用本來的值#實例: #value1="aBcDe" {{ value1|upper }}<br> #value2=5 {{ value2|add:3 }}<br> #value3=‘he llo wo r ld‘ {{ value3|cut:‘ ‘ }}<br> #import datetime #value4=datetime.datetime.now() {{ value4|date:‘Y-m-d‘ }}<br> #value5=[] {{ value5|default:‘空的‘ }}<br> #value6=‘<a href="#">跳轉</a>‘{{ value6 }} {% autoescape off %} {{ value6 }} {% endautoescape %} {{ value6|safe }}<br> {{ value6|striptags }} #value7=‘1234‘ {{ value7|filesizeformat }}<br> {{ value7|first }}<br> {{ value7|length }}<br> {{ value7|slice:":-1" }}<br> #value8=‘http://www.baidu.com/?a=1&b=3‘ {{ value8|urlencode }}<br>
2 標簽(tag)(使用大括號和百分比的組合來表示使用tag)
語法格式: {% tags %}
if
{% if expression %} ... {% elif expression %} ... {% endif %}
for
{% for item in list %} <p>{{ forloop.counter0 }}</p> {% endfor %}
#forloop.counter表示循環的次數,從1開始計數,第一次循環設為1
#forloop.counter0表示循環的次數,從0開始計數,第一次循環設為0
#forloop.revcounter表示循環的次數,從1開始計數,逆序
#forloop.revcounter0表示循環的次數,從0開始計數,逆序
#forloop.first {% if forloop.first %}
#forloop.last {% if forloop.last %}
{% for item in list %}
{% if forloop.first %} #第一次循環時
<p>first</p>
{% elif forloop.last %} #最後一次循環時
<p>last</p>
{% else %}
<p>{{ forloop.counter }}</p>
{% endif %}
{% endfor %}
3 自定義filter和simple_tag
from django import template from django.utils.safestring import mark_safe register = template.Library() #register的名字是固定的,不可改變 @register.filter def filter_multi(v1,v2): return v1 * v2 @register.simple_tag def simple_tag_multi(v1,v2): return v1 * v2 @register.simple_tag def my_input(id,arg): result = "<input type=‘text‘ id=‘%s‘ class=‘%s‘ />" %(id,arg,) return mark_safe(result)
https://docs.djangoproject.com/en/1.11/ref/templates/builtins/
django之Template