日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django内建模版标签和过滤器

發(fā)布時間:2024/4/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django内建模版标签和过滤器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

第四章列出了許多的常用內(nèi)建模板標(biāo)簽和過濾器。然而,Django自帶了更多的內(nèi)建模板標(biāo)簽及過濾器。這章附錄列出了截止到編寫本書時,Django所包含的各個內(nèi)建模板標(biāo)簽和過濾器,但是,新的標(biāo)簽是會被定期地加入的。

對于提供的標(biāo)簽和過濾器,最好的參考就是直接進(jìn)入你的管理界面。Django的管理界面包含了一份針對當(dāng)前站點的所有標(biāo)簽和過濾器的完整參考。想看到它的話,進(jìn)入你的管理界面,單擊右上角的Documentation(文檔)鏈接。

內(nèi)建文檔中的“標(biāo)簽和過濾器”小節(jié)闡述了所有內(nèi)建標(biāo)簽(事實上,本附錄中的標(biāo)簽和過濾器參考都直接來自那里)和所有可用的定制標(biāo)簽庫。

考慮到那些沒有管理站點可用的人們,這里提供了常用的標(biāo)簽和過濾器的參考。由于Django是可高度定制的,管理界面中的那些可用的標(biāo)簽和過濾器的參考可認(rèn)為是最可信的。


內(nèi)建標(biāo)簽參考
block

定義一個能被子模板覆蓋的區(qū)塊。參見第四章“模板繼承”一節(jié)查看更多信息。


comment

模板引擎會忽略掉?{% comment %}?和?{% endcomment %}?之間的所有內(nèi)容。


cycle

輪流使用標(biāo)簽給出的字符串列表中的值。

在一個循環(huán)內(nèi),輪流使用給定的字符串列表元素:

{% for o in some_list %} <tr class="{% cycle row1,row2 %}"> ... </tr> {% endfor %}

在循環(huán)外,在你第一次調(diào)用時,給這些字符串值定義一個不重復(fù)的名字,以后每次只需使用這個名字就行了:

<tr class="{% cycle row1,row2,row3 as rowcolors %}">...</tr> <tr class="{% cycle rowcolors %}">...</tr> <tr class="{% cycle rowcolors %}">...</tr>

你可以使用任意數(shù)量的用逗號分隔的值。注意不要在值與值之間有空格,只是一個逗號。


debug

輸出完整的調(diào)試信息,包括當(dāng)前的上下文及導(dǎo)入的模塊信息。


extends

標(biāo)記當(dāng)前模板擴(kuò)展一個父模板。

這個標(biāo)簽有兩種用法:

?

{% extends "base.html" %}?(帶引號) 直接使用要擴(kuò)展的父模板的名字?"base.html"?。

?

{% extends variable %}?用變量?variable?的值來指定父模板。如果變量是一個字符串,Django會把字符串的值當(dāng)作父模板的文件名。如果變量是一個?Template?對象,Django會把這個對象當(dāng)作父模板。

?

參看第四章更多應(yīng)用實例。


filter

通過可變過濾器過濾變量的內(nèi)容。

過濾器也可以相互傳輸,它們也可以有參數(shù),就像變量的語法一樣。

看這個用法實例:

{% filter escape|lower %} This text will be HTML-escaped, and will appear in all lowercase. {% endfilter %}


firstof

輸出傳入的第一個不是?False?的變量,如果被傳遞變量都為?False?,則什么也不輸出。

看這個用法實例:

{% firstof var1 var2 var3 %}

這等同于如下內(nèi)容:

{% if var1 %} {{ var1 }} {% else %}{% if var2 %} {{ var2 }} {% else %}{% if var3 %} {{ var3 }} {% endif %}{% endif %}{% endif %}


for

輪詢數(shù)組中的每一元素。例如顯示一個指定的運動員的序列?athlete_list?:

<ul> {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %} </ul>

你也可以逆向遍歷一個列表?{% for obj in list reversed %}?。

for?循環(huán)設(shè)置了許多循環(huán)中可用的變量(見表F-1)。

表F-1. {% for %}循環(huán)中的可用變量變量名描述
forloop.counter當(dāng)前循環(huán)次數(shù)(索引最小為1)。
forloop.counter0當(dāng)前循環(huán)次數(shù) (索引最小為0)。
forloop.revcounter剩余循環(huán)次數(shù) (索引最小為1)。
forloop.revcounter0剩余循環(huán)次數(shù) (索引最小為0)。
forloop.first第一次循環(huán)時為?True?。
forloop.last最后一次循環(huán)時為?True?。
forloop.parentloop用于嵌套循環(huán),表示當(dāng)前循環(huán)外層的循環(huán)。


if

{% if %}?標(biāo)簽測試一個變量,若變量為真(即其存在、非空,且不是一個為假的布爾值),區(qū)塊中的內(nèi)容就會被輸出:

{% if athlete_list %} Number of athletes: {{ athlete_list|length }} {% else %} No athletes. {% endif %}

若?athlete_list?非空,變量?{{ athlete_list|length }}?就會顯示運動員的數(shù)量。

正如你所見,?if?標(biāo)簽有可選的?{% else %}?從句,若條件不成立則顯示該從句。

if?語句可使用?and?、?or?和?not?來測試變量或者對給定的變量取反:

{% if athlete_list and coach_list %} Both athletes and coaches are available. {% endif %} {% if not athlete_list %} There are no athletes. {% endif %} {% if athlete_list or coach_list %} There are some athletes or some coaches. {% endif %} {% if not athlete_list or coach_list %} There are no athletes or there are some coaches (OK, so writing English translations of Boolean logic sounds stupid; it's not our fault). {% endif %} {% if athlete_list and not coach_list %} There are some athletes and absolutely no coaches. {% endif %}

不允許?and?和?or?同時出現(xiàn)在一個?if?語句中,因為這樣會有邏輯上的問題。例如這樣是有語病的:

{% if athlete_list and coach_list or cheerleader_list %}

如果你需要同時使用?and?和?or?來實現(xiàn)較高級的邏輯,可以用嵌套的?if?標(biāo)簽來實現(xiàn)。例如:

{% if athlete_list %} {% if coach_list or cheerleader_list %} We have athletes, and either coaches or cheerleaders! {% endif %} {% endif %}

重復(fù)使用同一邏輯符是可以的。例如這樣是正確的:

{% if athlete_list or coach_list or parent_list or teacher_list %}


ifchanged

檢查循環(huán)中一個值從最近一次重復(fù)其是否改變。

ifchanged?語句塊用于循環(huán)中,其作用有兩個:

?

它會把要渲染的內(nèi)容與前一次作比較,發(fā)生變化時才顯示它。例如,下面要顯示一個日期列表,只有月份改變時才會顯示它:

?

<h1>Archive for {{ year }}</h1> {% for date in days %} {% ifchanged %}<h3>{{ date|date:"F" }}</h3>{% endifchanged %} <a href="{{ date|date:"M/d"|lower }}/">{{ date|date:"j" }}</a> {% endfor %}

?

如果給的是一個變量,就會檢查它是否發(fā)生改變。

?

{% for date in days %} {% ifchanged date.date %} {{ date.date }} {% endifchanged %} {% ifchanged date.hour date.date %} {{ date.hour }} {% endifchanged %} {% endfor %}

?

前面那個例子中日期每次發(fā)生變化時就會顯示出來,但只有小時和日期都發(fā)生變化時才會顯示小時。


ifequal

如果兩個參數(shù)相等,就輸出該區(qū)塊的內(nèi)容。

舉個例子:

{% ifequal user.id comment.user_id %} ... {% endifequal %}

正如?{% if %}?標(biāo)簽一樣,?{% else %}?語句是可選的。

參數(shù)也可以是硬編碼的字符串,所以下面這種寫法是正確的:

{% ifequal user.username "adrian" %} ... {% endifequal %}

可以用來比較的參數(shù)只限于模板變量或者字符串(實際上整數(shù)和小數(shù)也是可以的——譯注),你不能檢查諸如?True?or?False?等Python對象是否相等。如果你需要測試某值的真假,可以用?if?標(biāo)簽。


ifnotequal

和?ifequal?類似,不過它是用來測試兩個參數(shù)是 不 相等的。


include

加載一個模板,并用當(dāng)前上下文對它進(jìn)行渲染,這是在一個模板中包含其他模板的一種方法。

模板名可以是一個變量或者是一個硬編碼(引號引起來的)的字符串,引號可以是單引號或者雙引號。

這個例子包含了?"foo/bar.html"?模板的內(nèi)容:

{% include "foo/bar.html" %}

這個例子包含了名字由變量?template_name?指定的模板的內(nèi)容:

{% include template_name %}


load

讀入一個自定義的模板庫。第十章里有關(guān)于自定義模板的相關(guān)信息資料


now

根據(jù)給定的格式字符串顯示當(dāng)前日期。

這個標(biāo)簽來源于PHP中的?date()?函數(shù)(?http://php.net/date?),并使用與其相同的格式語法,但是Django對其做了擴(kuò)展。

表F-2顯示了可用的格式字符串。

表F-2. 可用的日期格式字符串格式字符串描述示例輸出
a'a.m.'?或者?'p.m.'?。(這與PHP中的輸出略有不同,因為為了匹配美聯(lián)社風(fēng)格,它包含了句點。'a.m.'
A'AM'?或者?'PM'?。'AM'
b月份,文字式的,三個字母,小寫。'jan'
d一月的第幾天,兩位數(shù)字,帶前導(dǎo)零。'01'?到?'31'
D一周的第幾天,文字式的,三個字母。'Fri'
f時間,12小時制的小時和分鐘數(shù),如果分鐘數(shù)為零則不顯示。'1'?,?'1:30'
F月份,文字式的,全名。'January'
g小時,12小時制,沒有前導(dǎo)零。'1'?到?'12'
G小時,24小時制,沒有前導(dǎo)零。'0'?到?'23'
h小時,12小時制。'01'?到?'12'
H小時,24小時制。'00'?到?'23'
i分鐘。'00'?到?'59'
j一月的第幾天,不帶前導(dǎo)零。'1'?到?'31'
l一周的第幾天,文字式的,全名。'Friday'
L是否為閏年的布爾值。True?到?False
m月份,兩位數(shù)字,帶前導(dǎo)零。'01'?到?'12'
M月份,文字式的,三個字母。'Jan'
n月份,沒有前導(dǎo)零。'1'?到?'12'
N美聯(lián)社風(fēng)格的月份縮寫。'Jan.'?,?'Feb.'?,'March'?,?'May'
O與格林威治標(biāo)準(zhǔn)時間的時間差(以小時計)。'+0200'
P時間,12小時制的小時分鐘數(shù)以及a.m./p.m.,分鐘數(shù)如果為零則不顯示,用字符串表示特殊時間點,如?'midnight'?和?'noon'?。'1 a.m.'?,?'1:30 p.m.'?,'midnight'?,'noon'?,?'12:30 p.m.'
rRFC 822 格式的日期。'Thu, 21 Dec 2000 16:01:07 +0200'
s秒數(shù),兩位數(shù)字,帶前導(dǎo)零。'00'?到?'59'
S英語序數(shù)后綴,用于表示一個月的第幾天,兩個字母。'st'?,?'nd'?,?'rd'到?'th'
t指定月份的天數(shù)。28?到?31
T本機(jī)的時區(qū)。'EST'?,?'MDT'
w一周的第幾天,數(shù)字,帶前導(dǎo)零。'0'?(Sunday) 到'6'?(Saturday)
WISO-8601 一年中的第幾周,一周從星期一開始。1?,?23
y年份,兩位數(shù)字。'99'
Y年份,四位數(shù)字。'1999'
z一年的第幾天。0?到?365
Z以秒計的時區(qū)偏移量,這個偏移量對于UTC西部時區(qū)總是負(fù)數(shù),對于UTC東部時區(qū)總是正數(shù)。-43200?到?43200

看這個例子:

It is {% now "jS F Y H:i" %}

記住,如果你想用一個字符串的原始值的話,你可以用反斜線進(jìn)行轉(zhuǎn)義。在這個例子中,f被用反斜線轉(zhuǎn)義了,如果不轉(zhuǎn)義的話f就是顯示時間的格式字符串。o不用轉(zhuǎn)義,因為它本來就不是一個格式字母。

It is the {% now "jS o\f F" %}

這樣就會顯示成“It is the 4th of September”。


regroup

把一列相似的對象根據(jù)某一個共有的屬性重新分組。

要解釋清這個復(fù)雜的標(biāo)簽,最好來舉個例子。比如,?people?是包含?Person?對象的一個列表, 這個對象擁有?first_name?、?last_name?和?gender?屬性,你想這樣顯示這個列表:

* Male: * George Bush * Bill Clinton * Female: * Margaret Thatcher * Condoleezza Rice * Unknown: * Pat Smith

下面這段模板代碼就可以完成這個看起來很復(fù)雜的任務(wù):

{% regroup people by gender as grouped %} <ul> {% for group in grouped %} <li>{{ group.grouper }} <ul> {% for item in group.list %} <li>{{ item }}</li> {% endfor %} </ul> </li> {% endfor %} </ul>

如你所見,?{% regroup %}?構(gòu)造了一個列表變量,列表中的每個對象都有?grouper?和?list?屬性。grouper?包含分組所依據(jù)的屬性,?list?包含一系列擁有共同的?grouper?屬性的對象。這樣?grouper?就會是?Male?、?Female?和?Unknown?,?list?就是屬于這幾種性別的人們。

記住,如果被分組的列表不是按照某一列排好序的話,你就不能用?{% regroup %}?在這一列上進(jìn)行重新分組!就是說如果人的列表不是按照性別排好序的話,在用它之前就要先對它排序,即:

{% regroup people|dictsort:"gender" by gender as grouped %}


spaceless

去除HTML標(biāo)簽之間的空白符號,包括制表符和換行符。

例如:

{% spaceless %} <p> <a href="foo/">Foo</a> </p> {% endspaceless %}

返回結(jié)果如下:

<p><a href="foo/">Foo</a></p>

僅僅 標(biāo)簽 之間的空白符被刪掉,標(biāo)簽和文本之間的空白符是不會被處理的。在下面這個例子中,Hello?兩邊的空白符是不會被截掉的:

{% spaceless %} <strong> Hello </strong> {% endspaceless %}


ssi

把一個指定的文件的內(nèi)容輸出到頁面上。

像include標(biāo)簽一樣,?{% ssi %}?會包含另外一個文件的內(nèi)容,這個文件必須以絕對路徑指明:

{% ssi /home/html/ljworld.com/includes/right_generic.html %}

如果指定了可選的parsed參數(shù)的話,包含進(jìn)來的文件的內(nèi)容會被當(dāng)作模板代碼,并用當(dāng)前的上下文來渲染:

{% ssi /home/html/ljworld.com/includes/right_generic.html parsed %}

注意,如果你要使用?{% ssi %}?的話,為了安全起見,你必須在Django配置文件中定義ALLOWED_INCLUDE_ROOTS。

大多數(shù)情況下?{% include %}?比?{% ssi %}?更好用,?{% ssi %}?的存在通常是為了向后兼容。


templatetag

輸出組成模板標(biāo)簽的語法字符。

模板系統(tǒng)沒有轉(zhuǎn)義的概念,所以要顯示一個組成模板標(biāo)簽的字符的話,你必須使用?{% templatetag %}?標(biāo)簽。

參數(shù)用來標(biāo)明要顯示的字符(參見表F-3)。

表F-3. templatetag的有效參數(shù)參數(shù)輸出
openblock{%
closeblock%}
openvariable{{
closevariable}}
openbrace{
closebrace}
opencomment{#
closecomment#}


url

根據(jù)所給視圖函數(shù)和可選參數(shù),返回一個絕對的URL(就是不帶域名的URL)。由于沒有在模板中對URL進(jìn)行硬編碼,所以這種輸出鏈接的方法沒有違反DRY原則。

{% url path.to.some_view arg1,arg2,name1=value1 %}

第一個變量是按package.package.module.function形式給出的指向一個view函數(shù)的路徑。那些可選的、用逗號分隔的附加參數(shù)被用做URL中的位置和關(guān)鍵詞變量。所有URLconf需要的參數(shù)都應(yīng)該是存在的。

例如,假設(shè)你有一個view,app_name.client,它的URLconf包含一個client ID參數(shù)。URLconf對應(yīng)行可能看起來像這樣:

('^client/(\d+)/$', 'app_name.client')

如果這個應(yīng)用的URLconf像下面一樣被包含在項目的URLconf里:

('^clients/', include('project_name.app_name.urls'))

那么,在模板中,你可以像這樣創(chuàng)建一個指向那個view的link連接:

{% url app_name.client client.id %}

模板標(biāo)簽將輸出字符串/clients/client/123/

widthratio,寬度的比率

為了畫出長條圖,這個標(biāo)籤計算一個給定值相對於最大值的比率,然後將這個比率給定一個常數(shù)

一些實例:

<img src="bar.gif" height="10" width="{% widthratio this_value max_value 100 %}" />

If?this_value?is 175 and?max_value?is 200, the image in the preceding example will be 88 pixels wide (because 175/200 = .875; .875 * 100 = 87.5, which is rounded up to 88).


Built-in Filter Reference
add

例如:

{{ value|add:"5" }}

參數(shù)與被處理數(shù)據(jù)相加的結(jié)果.


addslashes

例如:

{{ string|addslashes }}

給敏感字符添加斜線(轉(zhuǎn)義). 舉例,要將一個字符串傳遞給 JavaScript 時.


capfirst

例如:

{{ string|capfirst }}

將字符串的首字母大寫


center

例如:

{{ string|center:"50" }}

在一個給定的長度讓字符串居中


cut

例如:

{{ string|cut:"spam" }}

把給定字符串中包含的所有參數(shù)值刪除掉。


date

Example:

{{ value|date:"F j, Y" }}

把一個date類型按照給定的格式輸出(與”now”標(biāo)簽用法一樣)。


default

例如:

{{ value|default:"(N/A)" }}

如果變量不存在,使用默認(rèn)值


default_if_none

例如:

{{ value|default_if_none:"(N/A)" }}

如果變量值為None,使用默認(rèn)值


dictsort

例如:

{{ list|dictsort:"foo" }}

接受一個字典列表,返回按給定參數(shù)的屬性排序后的列表.


dictsortreversed

例子:

{{ list|dictsortreversed:"foo" }}

接受一個字典列表,返回按給定參數(shù)的屬性逆序排序后的列表


divisibleby

Example:

{% if value|divisibleby:"2" %} Even! {% else %} Odd! {% else %}

如果值能夠被給定的參數(shù)整除的話,返回“True”。


escape

例如:

{{ string|escape }}

按照以下的規(guī)則,轉(zhuǎn)義一個HTML字符串:

?

"&"?to?"&amp;"

?

<?to?"&lt;"

?

>?to?"&gt;"

?

'"'?(double quote) to?'&quot;'

?

"'"?(single quote) to?'&#39;'


filesizeformat

Example:

{{ value|filesizeformat }}

將值格式化為 ‘可讀性好的’ 文件大小(比如 ‘13 KB’, ‘4.1 MB’, ‘102bytes’ 等等).


first

Example:

{{ list|first }}

返回列表中的第一個元素.


fix_ampersands

Example:

{{ string|fix_ampersands }}

將 & 符號替換為 &amp; 實體


floatformat

Examples:

{{ value|floatformat }} {{ value|floatformat:"2" }}

將一個浮點數(shù)四舍五入到小數(shù)點后1位 — 如果根本沒有小數(shù),小數(shù)部分不會顯示.

?

36.123?gets converted to?36.1?.

?

36.15?gets converted to?36.2?.

?

36?gets converted to?36?.

?

如果使用同一個數(shù)字的整數(shù)參數(shù),“floatformat”輪數(shù),許多小數(shù)位:

?

36.1234?with floatformat:3 gets converted to?36.123?.

?

36?with floatformat:4 gets converted to?36.0000?.

?

If the argument passed to?floatformat?is negative, it will round a number to that many decimal places but only if theres a decimal part to be displayed:

?

36.1234?with floatformat:-3 gets converted to?36.123?.

?

36?with floatformat:-4 gets converted to?36?.

?

Using?floatformat?with no argument is equivalent to using?floatformat?with an argument of?-1?.


get_digit

Example:

{{ value|get_digit:"1" }}

提供一個完整的數(shù), 返回該數(shù)中被請求的數(shù)字,其中 1 是最右邊的數(shù), 2 是從右邊數(shù)第二個數(shù)字等等. 若輸入值非法(若輸入或參數(shù)不是整數(shù), 或者參數(shù)小于1)則返回其原始值. 否則輸出就總是整數(shù).


join

例子:

{{ list|join:", " }}

用一個字符串將一個列表連接起來,類似 Python 的 str.join(list).


length

例子:

{{ list|length }}

返回對象的長度


length_is

Example:

{% if list|length_is:"3" %} ... {% endif %}

若值的長度與參數(shù)相等,返回 True, 否則返回 False.


linebreaks

Example:

{{ string|linebreaks }}

把換行符轉(zhuǎn)換成<p>和<br />標(biāo)簽。


linebreaksbr

Example:

{{ string|linebreaksbr }}

把每個新行轉(zhuǎn)換為”<br />”標(biāo)簽


linenumbers

Example:

{{ string|linenumbers }}

帶行號顯示文本


ljust

Example:

{{ string|ljust:"50" }}

在給定寬度的域內(nèi)將文本左對齊.


lower

Example:

{{ string|lower }}

把一個給定的字符串轉(zhuǎn)換成小寫。


make_list

Example:

{% for i in number|make_list %} ... {% endfor %}

將值轉(zhuǎn)化為一個列表.對一個整數(shù),它是一個數(shù)字的列表.對一個字符串,這是一個字符的列表


phone2numeric

Example:

{{ string|phone2numeric }}

將一個電話號碼(可能包含字母)轉(zhuǎn)化等價的數(shù)字值.比如: ‘800-COLLECT’ 將被轉(zhuǎn)化為 ‘800-2655328’.

輸入不一定非是一個合法號碼. 它可以轉(zhuǎn)化任意字符串.


pluralize

Example:

The list has {{ list|length }} item{{ list|pluralize }}.

如果值不是 1 的話返回 ‘s’ 用于 ‘1 vote’ vs. ‘2 votes’ 這種場合

Example:

You have {{ num_messages }} message{{ num_messages|pluralize }}.

For words that require a suffix other than?'s'?, you can provide an alternate suffix as a parameter to the filter.

Example:

You have {{ num_walruses }} walrus{{ num_walrus|pluralize:"es" }}.

For words that dont pluralize by simple suffix, you can specify both a singular and plural suffix, separated by a comma.

Example:

You have {{ num_cherries }} cherr{{ num_cherries|pluralize:"y,ies" }}.


pprint

Example:

{{ object|pprint }}

pprint.pprint 和一個封裝器— 僅用于調(diào)試.


random

Example:

{{ list|random }}

返回隨機(jī)的從列表中返回一個元素


removetags

Example:

{{ string|removetags:"br p div" }}

從輸出中刪除單空格分隔的 [X]HTML標(biāo)簽 列表


rjust

Example:

{{ string|rjust:"50" }}

在給定寬度的域內(nèi)將文本右對齊.


slice

Example:

{{ some_list|slice:":2" }}

返回一個列表的片段

使用與 Python 的 list 相同的語法, 參閱http://diveintopython.org/native_data_types/lists.html#odbchelper.list.slice?以了解更詳細(xì)的信息.


slugify

Example:

{{ string|slugify }}

轉(zhuǎn)化為小寫, 移去非單詞字符(字母數(shù)字和下劃線),將空白轉(zhuǎn)化為連字符,去除前后空白.


stringformat

Example:

{{ number|stringformat:"02i" }}

根據(jù)給定參數(shù)(一個格式字符串)格式化一個變量, 這個格式字符串使用 Python 字符串格式化語法, 例外之處是 “%” 運算符被省略.

參閱?http://docs.python.org/lib/typesseq-strings.html?以了解 Python 格式字符串


striptags

Example:

{{ string|striptags }}

過濾掉[X]HTML標(biāo)簽.


time

Example:

{{ value|time:"P" }}

按指定的樣式(樣式定義同now標(biāo)簽)來格式化一個時間對象


timesince

Examples:

{{ datetime|timesince }} {{ datetime|timesince:"other_datetime" }}

格式化一個日期,這個日期是從給定日期到現(xiàn)在的天數(shù)和小時數(shù)(比如: “4 days, 6 hours”).

接受一個可選的參數(shù),該參數(shù)是一個包含比較日期的變量(該參數(shù)默認(rèn)值是 now). 舉例來說, 如果 blog_date 是一個日期實例表示 2006-06-01 午夜, 而 comment_date 是一個日期實例表示 2006-06-01 早上8點,那么 {{ comment_date|timesince:blog_date }} 將返回 “8 hours”.


timeuntil

Examples:

{{ datetime|timeuntil }} {{ datetime|timeuntil:"other_datetime" }}

類似 timesince, 只是它比較當(dāng)前時間直到給定日期時間。舉例來說,如果今天是 2006-06-01 而 conference_date 是 2006-06-29, 那么 {{ conference_date|timeuntil }} 將返回 “28 days”.

接受一個可選的參數(shù),該參數(shù)是一個包含比較日期的變量(該參數(shù)默認(rèn)值是 now). 舉例來說, 如果 from_date 是一個日期實例表示 2006-06-22, 那么 {{ conference_date|timeuntil:from_date }} 會返回 “7 days”.


title

Example:

{{ string|titlecase }}

按標(biāo)題格式轉(zhuǎn)化一個字符串


truncatewords

Example:

{{ string|truncatewords:"15" }}

將一個字符串截短為指定數(shù)目的單詞.


truncatewords_html

Example:

{{ string|truncatewords_html:"15" }}

Similar to?truncatewords?, except that it is aware of HTML tags. Any tags that are opened in the string and not closed before the truncation point are closed immediately after the truncation.

This is less efficient than?truncatewords?, so it should be used only when it is being passed HTML text.


unordered_list

Example:

<ul> {{ list|unordered_list }} </ul>

遞歸的接受一個自嵌套的列表并返回一個HTML無序列表(此列表可不是pythob語義中的列表) — 只是沒有開始和結(jié)束的<ul>標(biāo)簽

假定該列表是合適的格式. 舉例來說, 如果 var 的值為 [‘States’, [[‘Kansas’, [[‘Lawrence’, []], [‘Topeka’, []]]], [‘Illinois’, []]]], 那么 {{ var|unordered_list }} 就會返回:

<li>States <ul> <li>Kansas <ul> <li>Lawrence</li> <li>Topeka</li> </ul> </li> <li>Illinois</li> </ul> </li>


upper

例子:

{{ string|upper }}

將一個字符串全部字母改為大寫。


urlencode

例子:

<a href="{{ link|urlencode }}">linkage</a>

轉(zhuǎn)義該值以用于 URL.


urlize

例子:

{{ string|urlize }}

將URLs由純文本變?yōu)榭牲c擊的鏈接。


urlizetrunc

例子:

{{ string|urlizetrunc:"30" }}

將URLs變?yōu)榭牲c擊的鏈接,按給定字母限截短URLs。


wordcount

例如:

{{ string|wordcount }}

返回單詞數(shù)。


wordwrap

例如:

{{ string|wordwrap:"75" }}

在指定長度將文字換行。


yesno

例如:

{{ boolean|yesno:"Yes,No,Perhaps" }}

提供一個字符串參數(shù)對應(yīng)著 true, false 和 (可選的) None, 根據(jù)被處理的值返回相應(yīng)的字符串:

表F-4. yesno過濾器示例值參數(shù)輸出
True"yeah,no,maybe"yeah
False"yeah,no,maybe"no
None"yeah,no,maybe"maybe
None"yeah,no""no"?(如果不存在?None?的映射,將?None?變?yōu)?False)

轉(zhuǎn)載于:https://www.cnblogs.com/Simon-xm/p/3891551.html

總結(jié)

以上是生活随笔為你收集整理的Django内建模版标签和过滤器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。