{% 開始標簽 %}
....
{% 結束標簽%}
例:{% if ... %}
{% elif %}
{% else %}
{% endif %}
if語句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判斷。
# for 標簽帶有一個可選的{% empty %} 從句,以便在給出的組是空的或者沒有被找到時,可以有所操作。
{% for person in person_list %}
{{ person.name }}
{% empty %}
sorry,no person here
{% endfor %}
注:循環序號可以通過{{forloop}}顯示
?forloop.counter 當前循環的索引值(從1開始)
forloop.counter0 當前循環的索引值(從0開始)
forloop.revcounter 當前循環的倒序索引值(從1開始)
forloop.revcounter0 當前循環的倒序索引值(從0開始)
forloop.first 當前循環是不是第一次循環(布爾值)
forloop.last 當前循環是不是最后一次循環(布爾值)
forloop.parentloop 本層循環的外層循環
# with起別名
{% with d.hobby.3.info as nb %}
<p>{{ nb }}</p>
在with語法內就可以通過as后面的別名快速的使用到前面非常復雜獲取數據的方式
{% endwith %}
先三步走
1.在應用下創建一個名字”必須“叫templatetags文件夾
2.在該文件夾內創建“任意”名稱的py文件 eg:mytag.py
3.在該py文件內"必須"先書寫下面兩句話(單詞一個都不能錯)
from django import template
register = template.Library()
4.然后在再其中輸入需要自定義的東西,如下:
"""
# 自定義過濾器
@register.filter(name='baby')
def my_sum(v1, v2):
return v1 + v2
# 使用
{% load mytag %} #模板層加載mytag文件
<p>{{ n|baby:666 }}</p>
# 自定義標簽(參數可以有多個) 類似于自定義函數
@register.simple_tag(name='plus')
def index(a,b,c,d):
return '%s-%s-%s-%s'%(a,b,c,d)
# 使用
標簽多個參數彼此之間空格隔開
<p>{% plus 'jason' 123 123 123 %}</p>
# 自定義inclusion_tag
"""
內部原理
先定義一個方法
在頁面上調用該方法 并且可以傳值
該方法會生成一些數據然后傳遞給一個html頁面
之后將渲染好的結果放到調用的位置
"""
@register.inclusion_tag('left_menu.html')
def left(n):
data = ['第{}項'.format(i) for i in range(n)]
# 第一種
# return {'data':data} # 將data傳遞給left_menu.html
# 第二種
return locals() # 將data傳遞給left_menu.html
{% left 5 %}
# 總結:當html頁面某一個地方的頁面需要傳參數才能夠動態的渲染出來,并且在多個頁面上都需要使用到該局部 那么就考慮將該局部頁面做成inclusion_tag形式
(在講bbs的時候會使用到)
網頁題目:模板語法之標簽
當前鏈接:http://m.kartarina.com/article30/dsogeso.html
成都網站建設公司_創新互聯,為您提供關鍵詞優化、網頁設計公司、自適應網站、Google、定制網站、
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯