电竞比分网-中国电竞赛事及体育赛事平台

分享

Django模板語言詳解

 明滅的煙頭 2018-09-11

Django模板語言詳解

圖片來源網(wǎng)絡(luò)

模板Templates

在上一篇文章中我簡單的介紹了Django模板語言,這篇文章進(jìn)一步講解模板中的變量、標(biāo)簽等。

Django的模板是一個(gè)簡單的文本文件,它可以生成任何文本格式(HTML、XML、CSV等),在本文開始之前先看一個(gè)Django模板的例子:

Django模板語言詳解

從這個(gè)例子中可以看到,模板標(biāo)簽可以是單獨(dú)出現(xiàn)的,如extends標(biāo)簽;也可以是成對出現(xiàn)的,如block標(biāo)簽和for標(biāo)簽。而模板的主體就是一個(gè)HTML結(jié)構(gòu)的文本文件,看到這里我想如果有過ASP, PHP開發(fā)經(jīng)驗(yàn)的人都會(huì)感到很親切,因?yàn)樗鼈兊恼Z法非常相似,都是嵌入到HTML中的標(biāo)記語言。

變量Variables

變量的基本用法:{{ variable }},當(dāng)模板引擎遇到變量時(shí)會(huì)將變量替換為具體值。變量名可以包含字母數(shù)字和下劃線,不能包含空格及其它特殊符號。句點(diǎn)(.)在變量中有特殊意義,如果模板引擎遇到了句點(diǎn)將會(huì)按照下面的順序?qū)ζ溥M(jìn)行解釋:

  1. 字典查找

  2. 查找屬性和方法

  3. 查找下標(biāo)元素

注意如果句點(diǎn)后面的變量是一個(gè)可以調(diào)用的方法的話,那么這個(gè)方法會(huì)按照空參數(shù)的方式調(diào)用,例如一個(gè)字典的iteritems方法可以在模板中用以下方式調(diào)用:

Django模板語言詳解

過濾器Filters

你可以使用過濾器來修改變量值的顯示樣式。過濾器的使用方式 {{ 變量|過濾器方法}}。過濾器可以連續(xù)使用,形式如: {{ 變量|過濾器方法1|過濾器方法2}}。

注意變量、管道符(|)和過濾器方法之間不能有空格。

某些過濾器還可以接收參數(shù),例如:{{ bio|truncatewords:30 }},這句代碼的意思是顯示bio的前30個(gè)單詞。

如果過濾器參數(shù)包含空格的話,參數(shù)就要用引號擴(kuò)起來,例如:{{ list|join:', ' }}。

Django大約提供了60個(gè)過濾器,具體介紹可以在Django官網(wǎng)看到:

https://docs./en/1.11/ref/templates/builtins/#ref-templates-builtins-filters。

下面介紹幾種常用的過濾器:

  • Default

如果變量是false或者空,顯示default值:例如: {{ value|default:'nothing' }},如果value是false會(huì)在頁面上顯示nothing。

  • Length

顯示一個(gè)字符串或者數(shù)組的長度,如:{{ value|length }}

  • Filesizeformat

將文件大小按照人類可讀的形式顯示,例如一個(gè)文件由123456789,那么顯示成117.7 MB,語法形式:{{ value|filesizeformat }}

  • Add

加法運(yùn)算:{{ value|add:'2' }}

這個(gè)方法會(huì)先按照數(shù)值來計(jì)算,如果失敗了就直接將兩個(gè)值拼接在一起,如連接兩個(gè)數(shù)組。

  • Capfirst

首字母大寫:{{ value|capfirst }}

  • cut

刪除指定值,例如去掉字符串中的空格:{{ value|cut:' ' }}

如果value是'String with spaces',那么輸出'Stringwithspaces'.

  • Date

格式化日期,該方法參數(shù)較多也很重要,請參考Django官網(wǎng)。

  • Dictsort

將一個(gè)字典按照某一字典項(xiàng)進(jìn)行排序后返回,

例如,有一個(gè)字典users如下,包含三個(gè)人員信息:

Django模板語言詳解

按照人名進(jìn)行排序:

Django模板語言詳解

顯示樣式:

Django模板語言詳解

  • Escape

將一個(gè)html字符串轉(zhuǎn)意:

Django模板語言詳解

瀏覽器顯示:

Django模板語言詳解

  • Join

拼接多個(gè)元素

Django模板語言詳解

標(biāo)簽Tags

  • For標(biāo)簽

循環(huán)執(zhí)行標(biāo)簽內(nèi)部代碼,例如:

Django模板語言詳解

  • If,elif和else標(biāo)簽

和其它編程語言的if語句一樣,當(dāng)條件為真或不為空時(shí),執(zhí)行代碼塊,例如:

Django模板語言詳解

If標(biāo)簽中可以嵌套其它標(biāo)簽。

注釋Comments

兩種注釋方式:

{# 這里是注釋 #}

注釋標(biāo)簽:

Django模板語言詳解

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多