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...