django 3 模板引擎

2022-08-18 09:39:12 字數 1589 閱讀 1513

目錄模板載入機制

render()

include模板標籤

模板繼承

+ 編寫模板字串,建立 template 物件,建立 context 物件,然後呼叫 render() 方法。

+ **示例:

```>>> from django import template

>>> t = template.template('my name is }.') # 建立模板物件

>>> c = template.context() # 上下文(模板變數和相應的值)

>>> print (t.render(c)) # 渲染模板

my name is nige.

```

+ 執行 python manage.py shell 啟動互動式直譯器,能在啟動直譯器之前,告訴django 使用哪個設定檔案,否則會拋異常

模板系統在變數處插入引擎的 string_if_invalid 配置選項,(預設為乙個空字串):

for標籤

ifequal/ifnotequal標籤

注釋

+ }: lower 過濾器調整 } 變數的值——把文字轉換成小寫

+ 過濾器可以串接:},獲取列表中的第乙個元素,然後將其轉換成大寫

+ 有些過濾器可以接受引數:},顯示 bio 變數的前 30 個詞

+ addslashes :在反斜線、單引號和雙引號前面新增乙個反斜線:}

+ date :根據引數中的格式字串格式化 date 或 datetime 物件:},

+ length :返回值的長度。對列表來說,返回元素的數量。對字串來說,返回字元的數量。如果變數未定義,返回 0 。

在專案根目錄中放一些主模板(例如在 mysite/templates 目錄中):'dirs': [os.path.join(base_dir, 'templates')],

檢視函式中使用模板載入機制

from django.template.loader import get_template

t = get_template('current_datetime.html') # 傳入模組名稱,返回模板物件

html = t.render(context())  # 出現型別錯誤,需要字典dir物件而不是context物件,去掉context直接或使用context().update()

render() 的第乙個引數是請求物件,第二個引數是模板名稱,第三個單數可選,是乙個字段,用於建立傳給模板的上下文。如果不指定第三個引數, render() 使用乙個空字典。

定義有區別的片段

子模板可以覆蓋塊的內容、向塊中新增內容,或者原封不動。
# 宣告子模組,載入父模組,要出現在子模組的第乙個模板標籤,使用與 get_template() 相同的方法載入

覆蓋的內容

從父模板中的塊裡獲取內容,使用 } ,這是乙個「魔法」變數,提供父模板中渲染後的文字。向塊中新增內容,而不是完全覆蓋時就可以這麼做

django 3 模板引擎

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

Django 3 管理介面

django管理介面是乙個通過簡單的配置就可以實現的資料模型後台的web控制台 1.from django.contrib import admin register your models here.from models import moment admin.site.register mom...

在ubntu上學習使用django 3

建立乙個工程 sudo apt get remove vim common然後再安裝上vim sudo apt get install vim 然後再使用vi即可編輯檔案,可是編輯時也出現一些錯誤 不能編寫,然後找到了一些方法如下 移動游標類命令 h 游標左移乙個字元 l 游標右移乙個字元 spac...