django模板句點字元的使用方法

2021-06-16 18:00:13 字數 2092 閱讀 2599

在到目前為止的例子中,我們通過 context 傳遞的簡單引數值主要是字串,還有乙個 datetime.date

範例。 然而,模板系統能夠非常簡潔地處理更加複雜的資料結構,例如list、dictionary和自定義的物件。

在 django 模板中遍歷複雜資料結構的關鍵是句點字元 (.

)。最好是用幾個例子來說明一下。 比如,假設你要向模板傳遞乙個 python 字典。 要通過字典鍵訪問該字典的值,可使用乙個句點:

>>> from django.template import template, context

>>> person =

>>> t = template('} is } years old.')

>>> c = context()

>>> t.render(c)

u'sally is 43 years old.'

同樣,也可以通過句點來訪問物件的屬性。 比方說, python 的 datetime.date

物件有 year

、 month

和 day

幾個屬性,你同樣可以在模板中使用句點來訪問這些屬性:

>>> from django.template import template, context

>>> import datetime

>>> d = datetime.date(1993, 5, 2)

>>> d.year

1993

>>> d.month

5>>> d.day

2>>> t = template('the month is } and the year is }.')

>>> c = context()

>>> t.render(c)

u'the month is 5 and the year is 1993.'

這個例子使用了乙個自定義的類,演示了通過例項變數加一點(dots)來訪問它的屬性,這個方法適用於任意的物件。

11

>>> from django.template import template, context

>>> class person(object):

... def __init__(self, first_name, last_name):

... self.first_name, self.last_name = first_name, last_name

>>> t = template('hello, } }.')

>>> c = context()

>>> t.render(c)

u'hello, john smith.'

點語法也可以用來引用物件的* 方法*。 例如,每個 python 字串都有 upper()

和 isdigit()

方法,你在模板中可以使用同樣的句點語法來呼叫它們:

>>> from django.template import template, context

>>> t = template('} -- } -- }')

>>> t.render(context())

u'hello -- hello -- false'

>>> t.render(context())

u'123 -- 123 -- true'

注意這裡呼叫方法時並* 沒有* 使用圓括號 而且也無法給該方法傳遞引數;你只能呼叫不需引數的方法。 (我們將在本章稍後部分解釋該設計觀。)

3最後,句點也可用於訪問列表索引,例如:

>>> from django.template import template, context

>>> t = template('item 2 is }.')

>>> t.render(c)

u'item 2 is carrots.'

不允許使用負數列表索引。 像 }

這樣的模板變數將會引發`` templatesyntaxerror``

3python 列表型別

句點查詢規則可概括為: 當模板系統在變數名中遇到點時,按照以下順序嘗試進行查詢:

系統使用找到的第乙個有效型別。 這是一種短路邏輯。

Django模板的使用

總結了下,一般情況django裡模板用法有多種 以下有省略 設計常用的是最後一種 1 from django.template import context,template t template 與 的組合.c context t.render c 輸出 2 在檢視中使用模板 html 模板 變數...

Django 模板使用

環境 python 2.7 32位,django1.6.7,win7 64位系統 模板載入 在mysite下新建乙個templates資料夾,然後在setting.py新增以下內容 import os.path template dirs os.path.join os.path.dirname f...

django 模板使用css js

開啟 settings.py 中的 debug true 同時我們還會做如下操作 1.設定 static root os.path.join os.path.dirname file static 2.設定 static url static 以上兩步我想一般都會提到,但即使你做了這樣的配置,當你在...