全局函數清單

2018-02-24 15:39 更新

默認下,下面的函數在全局作用域中可用:

range([start],?stop[,?step])

返回一個包含整等差級數的列表。 range(i, j) 返回 [i, i+1, i+2, ...., j-1] ;起始值(?。┠J為 0 。當給定了公差,它決定了增長(或減?。?。 例如 range(4) 返回 [0, 1, 2, 3] 。末端的值被丟棄了。這些是一個 4 元素 數組的有效索引值。

例如重復一個模板塊多次來填充一個列表是有用的。想向你有一個 7 個用戶的 列表,但你想要渲染三個空項目來用 CSS 強制指定高度:

<ul>
{% for user in users %}
    <li>{{ user.username }}</li>
{% endfor %}
{% for number in range(10 - users|count) %}
    <li class="empty"><span>...</span></li>
{% endfor %}
</ul>

lipsum(n=5,?html=True,?min=20,?max=100)

在模板中生成 lorem ipsum 亂數假文。默認會生成 5 段 HTML ,每段在 20 到 100 詞之間。如果 HTML 被禁用,會返回常規(guī)文本。這在測試布局時生成簡單內容時很有 用。

dict(**items)

方便的字典字面量替代品。?{'foo'?:?'bar'}?與?dict(foo=bar)?等價。

class?cycler(*items)

周期計允許你在若干個值中循環(huán),類似?loop.cycle?的工作方式。不同于?loop.cycle?的是,無論如何你都可以在循環(huán)外或在多重循環(huán)中使用它。

比如如果你想要顯示一個文件夾和文件列表,且文件夾在上,它們在同一個列表中且 行顏色是交替的。

下面的例子展示了如何使用周期計:

{% set row_class = cycler('odd', 'even') %}
<ul class="browser">
{% for folder in folders %}
  <li class="folder {{ row_class.next() }}">{{ folder|e }}</li>
{% endfor %}
{% for filename in files %}
  <li class="file {{ row_class.next() }}">{{ filename|e }}</li>
{% endfor %}
</ul>

周期計有下面的屬性和方法:

reset()

重置周期計到第一個項。

next()

返回當前項并跳轉到下一個。

current

返回當前項。.

New in version 2.1.

class?joiner(sep=',?')

一個小巧的輔助函數用于“連接”多個節(jié)。連接器接受一個字符串,每次被調用時返回 那個字符串,除了第一次調用時返回一個空字符串。你可以使用它來連接:

{% set pipe = joiner("|") %}
{% if categories %} {{ pipe() }}
    Categories: {{ categories|join(", ") }}
{% endif %}
{% if author %} {{ pipe() }}
    Author: {{ author() }}
{% endif %}
{% if can_edit %} {{ pipe() }}
    <a href="?action=edit">Edit</a>
{% endif %}

New in version 2.1.

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號