Django框架系列指南 五 模版

2021-10-12 07:56:13 字數 2584 閱讀 8798

雖然說現在大部分都是前後端分離開發,但是多了解一些還是非常有用的,django的模版非常人性化,配置,渲染邏輯清晰,操作簡單,可以用到的時候再來詳細學習;

初學者只要過一遍知道有這麼個東西就行,下次用到了再來看也不遲,這麼多東西想要完全記住沒有兩三遍是很難的!

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

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

templates = [,},

]

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

呼叫模板分為兩步驟:

找到模板 loader.get_template(模板檔案在模板目錄中的相對路徑) -> 返回模板物件

渲染模板 模板物件.render(context=none, request=none) -> 返回渲染後的html文字字串 context 為模板變數字典,預設值為none request 為請求物件,預設值為none

例如,定義乙個檢視

# 1.獲取模板

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

context=

# 2.渲染模板

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

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

from django.shortcuts import render

def index(request):

context=

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

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

語法如下:

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

def index(request):

context = ,

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

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

注意字典的取值方法

注意列表的取值方法

1)for迴圈:

迴圈邏輯

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

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

2)if條件:

邏輯1邏輯2

邏輯3

比較運算子如下:

==

!=<

>

<=

>=

布林運算子如下:

and

ornot

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

# 正確

# 錯誤

語法如下:

列舉幾個如下:

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

1)單行注釋語法如下:

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

...

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

父模板

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

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

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

子模板

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

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

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

實際填充內容

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

Django系列學習之五

後台管理頁面做好了,接下來就要做公共訪問的頁面了。當我們剛剛在瀏覽器中輸入 之後,瀏覽器顯示出了後台管理的登入頁面,那有沒有同學想過這個伺服器是怎麼給我們找到這個頁面並返回呢?admin 是我們想要請求得頁面,伺服器在收到這個請求之後,就一定對應著乙個處理動作,這個處理動作就是幫我的產生頁面內容並返...

Django學習Day8 模版的使用(五)

模版的基礎知識和使用方法在前面的部落格中已經有過相關的介紹,這篇部落格從專案的角度出發,結合前面路由和檢視中的練習專案,加入模版,使得之前的專案更加完善。之前的專案回顧可以參見django學習day3 檢視和路由 二 主要是借助豆瓣平台提供的api進行 的查詢,不過當時因為沒有進行前端的渲染,直接在...

go語言web開發框架學習系列五 MVC包使用

在iris框架中,封裝了mvc包作為對mvc架構的支援,方便開發者遵循mvc的開發原則進行開發。iris框架支援請求資料 模型 持久資料分層處理,並支援各層級模組 繫結執行。mvc即 model view controller三個部分,分別代表資料層 檢視層 控制層。控制器層負責完成頁面邏輯 實體層...