• 第三章:模版层


    一些Django的‘奇技淫巧’就存在于这些不起眼的地方。

    为了提高模板系统对人类的友好性,Django在django.contrib.humanize中提供了一系列的模板过滤器,有助于为数据展示添加“人文关怀”。

    需要把django.contrib.humanize添加到INSTALLED_APPS设置中来激活这些过滤器。然后在模板中使用{% load humanize %}标签,就可以使用下面的过滤器了。

    一、 apnumber

    对于数字1~9,返回英文单词,否则返回数字本身。 这遵循了出版图书的格式。

    例如:

    • 1 会变成one。
    • 2 会变成 two。
    • 10 会变成 10。

    可以传递整数,或者整数的字符串形式。

    二、intcomma

    将整数或浮点数(或两者的字符串表示形式)转换为每隔三位数字包含逗号的字符串。这在财务报表中很有用。

    例如:

    • 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'。

    三、intword

    将大整数(或整数的字符串表示形式)转换为友好的文本表示形式。适用于超过一百万的数字。

    例如:

    • 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'。

    四、naturalday

    对于当天或者一天之内的日期,返回“today”,“tomorrow”或者“yesterday”的表示形式,视情况而定。否则,使用传进来的格式字符串进行日期格式化。

    例如(“今天”是2007年2月17日):

    • 16 Feb 2007 会变成 yesterday。
    • 17 Feb 2007 会变成 today。
    • 18 Feb 2007 会变成 tomorrow。

    其它的日期,还是按照传统的方法展示。

    五、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。
    

    六、ordinal

    将一个整数转化为它的序数词字符串。

    例如:

    • 1 会变成 1st。
    • 2 会变成 2nd。
    • 3 会变成 3rd。
  • 相关阅读:
    一个很棒的DiabloII研究站:)
    跳票了?又跳了!
    羊皮卷的实践第二十四章
    羊皮卷的实践第二十六章
    羊皮卷的实践第二十五章
    Timer的控件使用
    英语名言名句集锦
    Passwordstrength控件
    羊皮卷的实践第二十三章
    羊皮卷的实践第二十二章
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/12834800.html
Copyright © 2020-2023  润新知