django人類可讀性

一些Django的‘奇技淫巧’就存在於這些不起眼的地方。django

爲了提升模板系統對人類的友好性,Django在django.contrib.humanize中提供了一系列的模板過濾器,有助於爲數據展現添加「人文關懷」。code

須要把django.contrib.humanize添加到INSTALLED_APPS設置中來激活這些過濾器。而後在模板中使用{% load humanize %}標籤,就可使用下面的過濾器了。orm

1、 apnumber

對於數字1~9,返回英文單詞,不然返回數字自己。 這遵循了出版圖書的格式。字符串

例如:it

  • 1 會變成one。
  • 2 會變成 two。
  • 10 會變成 10。

能夠傳遞整數,或者整數的字符串形式。io

2、intcomma

將整數或浮點數(或二者的字符串表示形式)轉換爲每隔三位數字包含逗號的字符串。這在財務報表中頗有用。模板

例如:class

  • 4500 會變成 4,500。
  • 4500.2變爲4,500.2。
  • 45000 會變成 45,000
  • 450000 會變成 450,000。
  • 4500000 會變成 4,500,000。

若是啓動了Format localization,還將遵循用戶本地國家標準。例如,在德語('de')中:方法

  • 45000 會變成 '45.000'。
  • 450000 會變成 '450.000'。

3、intword

將大整數(或整數的字符串表示形式)轉換爲友好的文本表示形式。適用於超過一百萬的數字。im

例如:

  • 1000000 會變成 1.0 million。
  • 1200000 會變成 1.2 million。
  • 1200000000 會變成 1.2 billion。

支持高達10的100次方 (Googol) 的整數。

若是啓動了Format localization,還將遵循用戶本地國家標準。例如,在德語('de')中:

  • 1000000 會變成 '1,0 Million'。
  • 1200000 會變成 '1,2 Million'。
  • 1200000000 會變成 '1,2 Milliarden'。

4、naturalday

對於當天或者一天以內的日期,返回「today」,「tomorrow」或者「yesterday」的表示形式,視狀況而定。不然,使用傳進來的格式字符串進行日期格式化。

例如(「今天」是2007年2月17日):

  • 16 Feb 2007 會變成 yesterday。
  • 17 Feb 2007 會變成 today。
  • 18 Feb 2007 會變成 tomorrow。

其它的日期,仍是按照傳統的方法展現。

5、naturaltime

對於日期時間的值,返回一個字符串來表示多少秒、分鐘或者小時以前。若是超過一天以前,則回退爲使用timesince格式。若是是將來的日期時間,返回值會自動使用合適的文字表述。

例如(「如今」是2007年2月17日16時30分0秒):

17 Feb 2007 16:30:00 會變成 now。
17 Feb 2007 16:29:31 會變成 29 seconds ago。
17 Feb 2007 16:29:00 會變成 a minute ago。
17 Feb 2007 16:25:35 會變成 4 minutes ago。
17 Feb 2007 15:30:29 會變成 59 minutes ago。
17 Feb 2007 15:30:01 會變成 59 minutes ago。
17 Feb 2007 15:30:00 會變成 an hour ago。
17 Feb 2007 13:31:29 會變成 2 hours ago。
16 Feb 2007 13:31:29 會變成 1 day, 2 hours ago。
16 Feb 2007 13:30:01 會變成 1 day, 2 hours ago。
16 Feb 2007 13:30:00 會變成 1 day, 3 hours ago。
17 Feb 2007 16:30:30 會變成 30 seconds from now。
17 Feb 2007 16:30:29 會變成 29 seconds from now。
17 Feb 2007 16:31:00 會變成 a minute from now。
17 Feb 2007 16:34:35 會變成 4 minutes from now。
17 Feb 2007 17:30:29 會變成 an hour from now。
17 Feb 2007 18:31:29 會變成 2 hours from now。
18 Feb 2007 16:31:29 會變成 1 day from now。
26 Feb 2007 18:31:29 會變成 1 week, 2 days from now。

6、ordinal

將一個整數轉化爲它的序數詞字符串。

例如:

  • 1 會變成 1st。
  • 2 會變成 2nd。
  • 3 會變成 3rd。
相關文章
相關標籤/搜索