變量

2018-02-24 15:39 更新

應(yīng)用把變量傳遞到模板,你可能在模板中弄混。變量上面也可以有你能訪問的屬性或元 素。變量看起來是什么,完全取決于應(yīng)用提供了什么。

你可以使用點(diǎn)(?.?)來訪問變量的屬性,作為替代,也可以使用所謂的“下標(biāo)”語 法(?[])。下面的幾行效果是一樣的:

{{ foo.bar }}
{{ foo['bar'] }}

知曉花括號?不是?變量的一部分,而是打印語句的一部分是重要的。如果你訪問標(biāo)簽 里的不帶括號的變量。

如果變量或?qū)傩圆淮嬖?,會返回一個未定義值。你可以對這類值做什么取決于應(yīng)用的配 置,默認(rèn)的行為是它如果被打印,其求值為一個空字符串,并且你可以迭代它,但其它 操作會失敗。

實(shí)現(xiàn)

為方便起見,Jinja2 中?foo.bar?在 Python 層中做下面的事情:

  • 檢查?foo?上是否有一個名為?bar?的屬性。
  • 如果沒有,檢查?foo?中是否有一個?'bar'?項(xiàng) 。
  • 如果沒有,返回一個未定義對象。

foo['bar']?的方式相反,只在順序上有細(xì)小差異:

  • 檢查在?foo?中是否有一個?'bar'?項(xiàng)。
  • 如果沒有,檢查?foo?上是否有一個名為?bar?的屬性。
  • 如果沒有,返回一個未定義對象。

如果一個對象有同名的項(xiàng)和屬性,這很重要。此外,有一個?attr()?過濾 器,它只查找屬性。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號