Django框架知識4(模板)

2021-08-20 01:28:45 字數 2650 閱讀 1928

模板使用

1. 配置

在工程中建立模板目錄templates。

在settings.py配置檔案中修改templates配置項的dirs值:

templates = [,},

]

2.定義模板

在templates目錄中新建乙個模板檔案,如index.html

lang="en">

charset="utf-8">

titletitle>

head>

}h1>

body>

html>

3.模板渲染

呼叫模板分為三步驟:

找到模板

定義上下文

渲染模板

例如,定義乙個檢視

# 1.獲取模板

template=loader.get_template('booktest/index.html')

# 2.定義上下文

context=requestcontext(request,)

# 3.渲染模板

return httpresponse(template.render(context))django提供了乙個函式render可以簡寫上述**。

render(request物件, 模板檔案路徑, 模板資料字典)

from django.shortcuts import render

defindex

(request):

context=

return render(request,'index.html',context)

4.模板語法

4.1模板變數

變數名必須由字母、數字、下劃線(不能以下劃線開頭)和點組成。

語法如下:

}
模板變數可以使python的內建型別,也可以是物件。

def

index

(request):

context = ,

'alist': [1, 2, 3, 4, 5]

}return render(request, 'index.html', context

lang="en">

charset="utf-8">

titletitle>

head>

}h1>

}h1>

}h1> 注意字典的取值方法

}h1>

}h1> 注意列表的取值方法

body>

html>

4.2模板語句

1)for迴圈:

迴圈邏輯

}表示當前是第幾次迴圈,從1開始

列表為空或不存在時執行此邏輯

2)if條件:

邏輯1邏輯2

邏輯3

比較運算子如下:

==

!=<

>

<=

>=

布林運算子如下:

and

ornot

注意:運算子左右兩側不能緊挨變數或常量,必須有空格。

# 正確

# 錯誤

4.3過濾器

語法如下:

列舉幾個如下:

value|date:"y年m月j日  h時i分s秒"

4.4 注釋

1)單行注釋語法如下:

2)多行注釋使用comment標籤,語法如下:

...

4.5 模板繼承

模板繼承和類的繼承含義是一樣的,主要是為了提高**重用,減輕開發人員的工作量。

父模板如果發現在多個模板中某些內容相同,那就應該把這段內容定義到父模板中。

標籤block:用於在父模板中預留區域,留給子模板填充差異性的內容,名字不能相同。 為了更好的可讀性,建議給endblock標籤寫上名字,這個名字與對應的block名字相同。父模板中也可以使用上下文中傳遞過來的資料。

預留區域,可以編寫預設內容,也可以沒有預設內容

子模板

標籤extends:繼承,寫在子模板檔案的第一行。

子模版不用填充父模版中的所有預留區域,如果子模版沒有填充,則使用父模版定義的預設值。

填充父模板中指定名稱的預留區域。

實際填充內容

}用於獲取父模板中block的內容

Django 筆記4 模板

django官方文件 英文 django 中文文件 配置templates 專案的settings.py檔案中,有乙個 templates 配置,這個配置包含了模板引擎的配置,模板查詢路徑的配置,模板上下文的配置等。templates dirs 乙個列表,在這個列表中可以存放所有的模板路徑,以後在檢...

Django框架全面講解 模板

1.模板的執行 模版的建立過程,對於模版,其實就是讀取模版 其中巢狀著模版標籤 然後將 model 中獲取的資料插入到模版中,最後將資訊返回給使用者。view.py def index request return render request,index.html index.html 2.模板語...

Django網路框架 Template模板

應用下 放在應用下的templates中,可以不用註冊,無法跨應用地進行復用 工程下 放在工程裡的templates中,需要在settings.py中註冊,可以復用 讀資料 屬性 方法 下標 第幾個 字典 本身 注釋 注釋若干內容.繼承和兼併 django的html介面是可以繼承的 用block分成...