django起步 2 模板

2021-09-09 05:21:40 字數 2748 閱讀 1271

1.後台將資料傳到前台

helloworld/helloworld/view.py 檔案**:

from django.shortcuts import render

def hello(request):

context = {}

context['hello'] = 'hello world!'

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

傳到前台的是乙個物件格式,context=

2.前台接收資料

helloworld/templates/hello.html 檔案**:

從模板中我們知道變數使用了雙括號。

django 模板標籤:

1、if/else 標籤

基本語法格式如下:

... display

或者: ... display 1

... display 2

... display 3

根據條件判斷是否輸出。if/else 支援巢狀。

標籤接受 and , or 或者 not 關鍵字來對多個變數做判斷 ,或者對變數取反( not ),例如:

athletes 和 coaches 變數都是可用的。

2、for 標籤

允許我們在乙個序列上迭代。

與python的 for 語句的情形類似,迴圈語法是 for x in y ,y是要迭代的序列而x是在每乙個特定的迴圈中使用的變數名稱。

每一次迴圈中,模板系統會渲染在 和 之間的所有內容。

例如,給定乙個運動員列表 athlete_list 變數,我們可以使用下面的**來顯示這個列表:

給標籤增加乙個 reversed 使得該列表被反向迭代:

...

可以巢狀使用 標籤:

顯示陣列裡的某乙個元素時:

}
data:陣列名稱,index:索引(從0開始)

3、ifequal/ifnotequal 標籤

標籤比較兩個值,當他們相等時,顯示在 和 之中所有的值。

下面的例子比較兩個模板變數 user 和 currentuser :

和 類似, 支援可選的 標籤:8

4、注釋標籤

5、過濾器

模板過濾器可以在變數被顯示前修改它,過濾器使用管道字元,如下所示:

}
} 變數被過濾器 lower 處理後,文件大寫轉換文字為小寫。

}
以上例項將第乙個元素並將其轉化為大寫。

有些過濾器有引數。 過濾器的引數跟隨冒號之後並且總是以雙引號包含。

例如:}這個將顯示變數 bio 的前30個詞。

其他過濾器:

addslashes: 新增反斜槓到任何反斜槓、單引號或者雙引號前面。

date: 按指定的格式字串引數格式化 date 或者 datetime 物件,例項:

}
length: 返回變數的長度。

6、include 標籤

標籤允許在模板中包含其它的模板的內容。

7、模板繼承

接下來我們先建立之前專案的 templates 目錄中新增 base.html 檔案,**如下:

helloworld/templates/base.html 檔案**:

菜鳥教程 django 測試。

original

以上**中,名為 mainbody 的 block 標籤是可以被繼承者們替換掉的部分。

所有的標籤告訴模板引擎,子模板可以過載這些部分。

hello.html 中繼承 base.html,並替換特定 block,hello.html 修改後的**如下:

helloworld/templates/hello.html 檔案**:

繼承了 base.html 檔案

第一行**說明 hello.html 繼承了 base.html 檔案。可以看到,這裡相同名字的 block 標籤用以替換 base.html 的相應 block。

有沒有發現,include標籤和模板繼承都可以用於實現**復用。那它們有啥區別呢?據筆者觀察,模板繼承一般用於復用html的大結構,包括引用公共css、js,視具體情況也可包含公共頭尾。

include標籤傾向於用於引入某個大量使用的元件,如公共的頭、尾、導航等。

Django學習筆記2(模板)

這一輪的學習主要是為了掌握django中關於模板的使用,為了開發與維護的高效,必然將要採取模組分離的方法,因此,html檔案最好不要直接硬編碼python,而是html頁面和python 單獨各位一塊,由一些鏈結的橋梁來將html載入到 之中.所以這段時間所學習的模板,其實就是為了達到這個目的,通常...

Django2 X Django模板引擎

django內建的模板引擎包含模板上下文 亦可稱為模板變數 標籤和過濾器,各個功能說明如下 模板上下文是模板中基本的組成單位,上下文的資料由檢視函式或檢視類傳遞。它以 表示,variable是上下文名稱,它支援python所有的資料型別,如字典 列表 元組 字串 整型和例項化物件。上下文的資料格式不...

Django使用jinja2模板

jinja2 是 python 下乙個被廣泛應用的模板引擎,是由python實現的模板語言,他的設計思想 於 django 的模板引擎,並擴充套件了其語法和一系列強大的功能,尤其是flask框架內建的模板語言 由於django預設模板引擎功能不齊全,速度慢,所以我們也可以在django中使用jinj...