Django模板層——模板語(yǔ)法

      網(wǎng)友投稿 1048 2025-03-31

      模板語(yǔ)法

      1.變量

      變量輸出語(yǔ)法

      { { var } }

      當(dāng)模版引擎遇到一個(gè)變量,將計(jì)算這個(gè)變量,然后將結(jié)果輸出

      變量名必須由字母、數(shù)字、下劃線(不能以下劃線開頭)和點(diǎn)組成

      當(dāng)模版引擎遇到點(diǎn)("."),會(huì)按照下列順序查詢:

      字典查詢,例如:foo["bar"]

      屬性或方法查詢,例如:foo.bar

      數(shù)字索引查詢,例如:foo[bar]

      如果變量不存在, 模版系統(tǒng)將插入'' (空字符串)

      在模板中調(diào)用方法時(shí)不能傳遞參數(shù)

      2.標(biāo)簽

      語(yǔ)法

      { % tag % }

      作用

      在輸出中創(chuàng)建文本

      控制循環(huán)或邏輯

      加載外部信息到模板中

      { % for ... in ... % } 循環(huán)邏輯 { % endfor % }

      { % if ... % } 邏輯1 { % elif ... % } 邏輯2 { % else % } 邏輯3 { % endif % }

      { % comment % } 多行注釋 { % endcomment % }

      { % include "base/index.html" % }

      { % url 'name' p1 p2 % }

      { % csrf_token % }

      3.過濾器

      語(yǔ)法:

      { { 變量|過濾器 } },例如{ { name|lower } },表示將變量name的值變?yōu)樾戄敵?/p>

      使用管道符號(hào) (|)來應(yīng)用過濾器

      通過使用過濾器來改變變量的計(jì)算結(jié)果

      關(guān)閉HTML自動(dòng)轉(zhuǎn)義

      { { data|safe } }

      可以在if標(biāo)簽中使用過濾器結(jié)合運(yùn)算符

      if list1|length > 1

      過濾器能夠被“串聯(lián)”,構(gòu)成過濾器鏈

      name|lower|upper

      過濾器可以傳遞參數(shù),參數(shù)使用引號(hào)包起來

      list|join:", "

      default:如果一個(gè)變量沒有被提供,或者值為false或空,則使用默認(rèn)值,否則使用變量的值

      value|default:"什么也沒有"

      date:根據(jù)給定格式對(duì)一個(gè)date變量格式化

      value|date:'Y-m-d'

      官方文檔內(nèi)置過濾器參考:

      網(wǎng)址:https://docs.djangoproject.com/zh-hans/2.2/ref/templates/builtins/#ref-templates-builtins-filters

      4.注釋

      單行注釋

      {# 注釋 #}

      多行注釋

      {% comment %} 多行注釋 {% endcomment %}

      5.模板運(yùn)算

      { { value|add:10 } } note:value=5,則結(jié)果返回15

      { { value|add:-10 } } note:value=5,則結(jié)果返回-5,加一個(gè)負(fù)數(shù)就是減法了

      { % widthratio 5 1 100 % } note:等同于:(5 / 1) * 100 ,結(jié)果返回500, withratio需要三個(gè)參數(shù),它會(huì)使用參數(shù)1/參數(shù)2*參數(shù)3的方式進(jìn)行運(yùn)算,進(jìn)行乘法運(yùn)算,使「參數(shù)2」=1

      { % widthratio 5 100 1 % } note:等同于:(5 / 100) * 1,則結(jié)果返回0.05,和乘法一樣,使「參數(shù)3」= 1就是除法了。

      6.自定義 標(biāo)簽 或 過濾器

      首先在當(dāng)前應(yīng)用目錄下創(chuàng)建一個(gè)templatetags模板標(biāo)簽?zāi)夸洠ㄗh內(nèi)放一個(gè)__init__.py的空文件

      然后在templatetags目錄下創(chuàng)建一個(gè)模板標(biāo)簽文件pagetag.py,具體代碼如下:

      templatetags ├── pagetag.py ----------------pagetag.py------------------------- from django import template register = template.Library() # 自定義過濾器(實(shí)現(xiàn)大寫轉(zhuǎn)換) @register.filter def myupper(val): # print ('val from template:',val) return val.upper() # 自定義標(biāo)簽(實(shí)現(xiàn)減法計(jì)算) #from django.utils.html import format_html @register.simple_tag def jian(a,b): res = int(a) - int(b) return res

      使用:在模板文件使用?{ % load pagetag % }

      Django模板層——模板語(yǔ)法

      6. 自定義標(biāo)簽

      {% load pagetag %} 大寫:{{name|myupper}}
      相減:{% jian m1 m2 %}

      Django

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:word中移動(dòng)光標(biāo)到文件首行的快捷鍵是什么(word光標(biāo)在中間咋移動(dòng)到首行)
      下一篇:excel中很全的快捷鍵命令職場(chǎng)效率必備(excel中常用的快捷鍵及其用法)
      相關(guān)文章
      亚洲欧洲日产国码二区首页 | 亚洲黄页网在线观看| 亚洲高清在线视频| 久久亚洲国产中v天仙www| 亚洲国产精品成人AV无码久久综合影院| 亚洲国产无线乱码在线观看| 四虎必出精品亚洲高清| 亚洲日本人成中文字幕| 亚洲国产中文在线视频| 亚洲18在线天美| 亚洲H在线播放在线观看H| 亚洲一区二区三区在线| 亚洲xxxx18| 亚洲国产视频久久| 亚洲精品无码久久久久久| 亚洲av无码成人精品国产| 国产精品国产亚洲区艳妇糸列短篇 | 久久青青草原亚洲av无码app| 亚洲精品免费视频| 91在线精品亚洲一区二区| 亚洲欧洲国产成人精品| 在线综合亚洲中文精品| 亚洲精品无码你懂的| 亚洲高清无码专区视频| 国产亚洲情侣一区二区无| 亚洲精品无码专区久久久| 久久精品亚洲视频| 亚洲AV永久青草无码精品| 久久久久亚洲AV片无码下载蜜桃| 亚洲精品乱码久久久久久下载| 亚洲国产精品久久人人爱| 亚洲中文字幕无码爆乳| 亚洲av无码成人精品区一本二本| 亚洲美女高清一区二区三区| 亚洲一区二区三区无码中文字幕| 亚洲AV无码专区国产乱码电影| 久久亚洲AV无码精品色午夜麻豆| 亚洲中字慕日产2021| 亚洲av无码专区在线电影| 亚洲综合色成在线播放| 亚洲AV人无码激艳猛片|