django系列 4 模板引擎

2021-07-25 10:57:23 字數 2066 閱讀 9721

1.django嚴格意義上來說是mtv模式:t:模板 v:檢視

在python**中使用django模板的最基本方式如下:

(1). 可以用原始的模板**字串建立乙個 template 物件, django同樣支援用指定模板檔案路徑的方式來創

建 template 物件;

(2). 呼叫模板物件的render方法,並且傳入一套變數context。它將返回乙個基於模板的展現字串,模板中

2.建立模板

模板的類庫 在django的template下

這裡要強調一點為什麼用 python manage.py shell 而不是用python來啟動直譯器:

因為 python manage.py shell 在啟動直譯器之前,它告訴django使用

哪個設定檔案。 django框架的大部分子系統,包括模板系統,都依賴於配置檔案;如果django不知道使用哪

個配置檔案,這些系統將不能工作。

3.丟擲 templatesyntaxerror 異常的情況:

-無效的tags

-標籤的引數無效

-無效的過濾器

-過濾器的引數無效

-過濾器的引數無效

-未封閉的塊標籤 (針對需要封閉的塊標籤)

4.模板渲染

一旦你建立乙個 template 物件,你可以用 context 來傳遞資料給它。 乙個context是一系列變數和它們值的集

合。

t.render(c) 返回的值是乙個unicode物件,不是普通的python字串。 你可以通過

字串前的 u 來區分

5.處理無效變數

預設情況下,如果乙個變數不存在,模板系統會把它展示為空字串,不做任何事情來表示失敗

6.基本的模板標籤和過濾器

標籤 if/else

- 標籤檢查(evaluate)乙個變數,如果這個變數為真(即,變數存在,非空,不是布林值假),系統會

顯示在 和 之間的任何內容

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

- 標籤不允許在同乙個標籤中同時使用 and 和 or ,因為邏輯上可能模糊的,例如,如下示例是錯誤的:

for

允許我們在乙個序列上迭代。 與python的 for 語句的情形類似,迴圈語法是 for x in y ,y是要迭

代的序列而x是在每乙個特定的迴圈中使用的變數名稱。 每一次迴圈中,模板系統會渲染在 和

之間的所有內容。

django不支援退出迴圈操作。 如果我們想退出迴圈,可以改變正在迭代的變數,讓其僅僅包含需要迭代的項

目。 同理,django也不支援continue語句,我們無法讓當前迭代操作跳回到迴圈頭部。

7.在檢視中使用模板

django 3 模板引擎

目錄 模板載入機制 render include模板標籤 模板繼承 編寫模板字串,建立 template 物件,建立 context 物件,然後呼叫 render 方法。示例 from django import template t template.template my name is 建立模...

django 3 模板引擎

目錄模板載入機制 render include模板標籤 模板繼承 編寫模板字串,建立 template 物件,建立 context 物件,然後呼叫 render 方法。示例 from django import template t template.template my name is 建立模板...

Django 筆記4 模板

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