定義模板
1.模板語言包括
①變數②標籤
③過濾器
④注釋2.變數
語法:
}
①當模版引擎遇到乙個變數,將計算這個變數,然後將結果輸出
②變數名必須由字母、數字、下劃線(不能以下劃線開頭)和點組成
③當模版引擎遇到點("."),會按照下列順序查詢:
字典查詢,例如:foo["bar"]
屬性或方法查詢,例如:foo.bar
數字索引查詢,例如:foo[bar]
④如果變數不存在, 模版系統將插入(空字串)
⑤在模板中呼叫方法時不能傳遞引數
3.在模板中呼叫物件的方法
①在models.py中定義類bloginfo
from django.db import models
class bloginfo(models.model):
...def showname(self):
return self.hname
②在views.py中傳遞bloginfo物件
from django.shortcuts import render
from models import *
def index(request):
hero = heroinfo(hname='abc')
context =
return render(request, 'temtest/detail.html', context)
③在模板detail.html中呼叫
}
4.標籤
語法:作用
在輸出中建立文字
控制迴圈或邏輯
載入外部資訊到模板中供以後的變數使用
①for標籤
# 迴圈邏輯
} # 表示當前是第幾次迴圈
# 給出的列表為或列表不存在時,執行此處
②if標籤
# 邏輯1
# 邏輯2
# 邏輯3
③comment標籤
# 多行注釋
④include:載入模板並以標籤內的引數渲染
⑤url:反向解析
⑥csrf_token:這個標籤用於跨站請求偽造保護
⑦布林標籤:and、or,and比or的優先順序高
⑧block、extends:詳細描述在「模板繼承」
5.過濾器
語法:},例如},表示將變數name的值變為小寫輸出
使用管道符號 (|)來應用過濾器
通過使用過濾器來改變變數的計算結果
①可以在if標籤中使用過濾器結合運算子
if list1|length > 1
②過濾器能夠被「串聯」,構成過濾器鏈
name|lower|upper
③過濾器可以傳遞引數,引數使用引號包起來
list|join:", "
③default:如果乙個變數沒有被提供,或者值為false或空,則使用預設值,否則使用變數值
value|default # 什麼也沒有
④date:根據給定格式對乙個date變數格式化
value|date:'y-m-d'
模板繼承
1.模板繼承
①模板繼承可以減少頁面內容的重複定義,實現頁面內容的重用
②典型應用:**的頭部、尾部是一樣的,這些內容可以定義在父模板中,子模板不需要重複定義
③block標籤:在父模板中預留區域,在子模板中填充
④extends繼承:繼承,寫在模板檔案的第一行
⑤定義父模板base.html
# 這裡可以定義預設值
# 如果不定義預設值,則表示空字串
⑥定義子模板index.html
# 在子模板中使用block填充預留區域
# 實際填充內容
2.說明
①如果在模版中使用extends標籤,它必須是模版中的第乙個標籤
②不能在乙個模版中定義多個相同名字的block標籤
③子模版不必定義全部父模版中的blocks,如果子模版沒有定義block,則使用了父模版中的預設值
④如果發現在模板中大量的複製內容,那就應該把內容移動到父模板中
⑤使用可以獲取父模板中block的內容
⑥為了更好的可讀性,可以給endblock標籤乙個名字
# 區域內容
Django 框架的 模板繼承 與 模板包含
一 模板繼承。目的是 減少 的冗餘。語法 具體步驟 1 建立乙個layout.html檔案,2 把要顯示的頁面的內容寫在這裡面,也就是html要在瀏覽器顯示的內容 3 在right裡面寫個盒子 在這裡面寫個空盒子,以後誰來擴充套件就在這個盒子裡面新增相應的內容就行了 4 然後再建立乙個son.htm...
Django框架知識4(模板)
模板使用 1.配置 在工程中建立模板目錄templates。在settings.py配置檔案中修改templates配置項的dirs值 templates 2.定義模板 在templates目錄中新建乙個模板檔案,如index.html lang en charset utf 8 titletitl...
Django框架全面講解 模板
1.模板的執行 模版的建立過程,對於模版,其實就是讀取模版 其中巢狀著模版標籤 然後將 model 中獲取的資料插入到模版中,最後將資訊返回給使用者。view.py def index request return render request,index.html index.html 2.模板語...