在 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 vitfcm= 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)來訪問它的屬性,這個方法適用於程式設計客棧任意的物件。
>>> 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'
注意這裡呼叫方法時並* 沒有* 使程式設計客棧用圓括號 而且也無法給該方法傳遞引數;你只能呼叫不需引數的方法。 (我們將在本章稍後部分解釋該設計觀。)
最後,句點也可用於訪問列表索引,例如:
>>> from django.template import template, context
>>> t = template('item 2 is }.')
>>> c = context()
>>> t.render(c)
u'item 2 is carrots.'
不允許使用負數列表索引。 像 } 這樣的模板變數將會引發`` templatesyntaxerror``
python 列表型別
一點提示: python的列表是從0開始索引。 第一項的索引是0,第二項的是1,依此類推。
句點查詢規則可概括為: 當模板系統在變數名中遇到點時,按照以下順序嘗試進行查詢:
系統使用找到的第乙個有效型別。 這是一種短路邏輯。
句點查詢可以多級深度巢狀。 例如在下面這個例子中 } 會轉換成字典型別查詢( person['name'] ) 然後是方法呼叫( upper() ):
>>> from django.tewww.cppcns.commplate import template, context
>>> person =
>>> t = template('} is } years old.')
>>> c = context()
>>> t.render(c)
u'sally is 43 years old.'
本文標題: django框架中方法的訪問和查詢
本文位址:
子類和父類中方法和變數訪問許可權
1。乙個覆寫方法的訪問修飾符所提供的訪問許可權與被覆寫方法的訪問修飾符所提供的訪問許可權相比,至少要 一樣多2。但是。對乙個域來說,當它要隱藏另乙個域時,如果隱藏域的訪問修飾符提供的訪問許可權比被隱藏域的少,儘管這麼做不可取的,但是它確實是合法的 class base class derived e...
Flask框架和django框架的區別
簡介 flask誕生於2010年,是armin ronacher 人名 用python語言基於werkzeug工具箱編寫的輕量級web開發框架。它主要面向需求簡單的小應用。flask本身相當於乙個核心,其他幾乎所有的功能都要用到擴充套件 郵件擴充套件flask mail,使用者認證flask log...
django框架常用方法總結
介紹 login required 檢視函式 方法用於修飾檢視函式,只有使用者登陸成功之後才能訪問被函式修飾的檢視函式對應的頁面,未登入的情況下跳轉到指定頁面 login url 需要在settings模組配置相關引數 匯入 from django.contrib.auth.decorators i...