day63-Django基础-部分常用的模板语言(补充)

  • 2019 年 10 月 7 日
  • 笔记

1.default,变量为空或者不存在的时候,替换默认值

{{ value|default:"暂无信息"}}  当我的 value 值不存在的时候,就会用 "暂无信息" 来替换

2.length,显示变量的长度

{{ value|length }}    返回value的长度,如 value=['a', 'b', 'c', 'd']的话,就显示4

3.data,格式化当前时间

{{ value|date:"Y-m-d H:i:s"}}    按照当前定制的格式,显示时间

4.cut去值,类似循环做替换

{{ value|cut:' ' }}    如果 value 的值是 "from selenium import webdriver",则会变成"fromseleniumimportwebdriver",去了空格

5.timesince,一般用于 "多久之前" 的页面显示

{{ blog_date|timesince:comment_date }}    比如:我写了这个博客的时候,时间 blog_data 是13:00  然后 comment_data 是14:00,  那么页面上将显示 "1小时",  一般 comment_data 使用当前时间,再加一点文字修饰,这样就实现了"XX时候之前" 

6.timeuntil,一般用于,"距离某事件还需要多久" 的页面展示

{{ conference_date|timeuntil:from_date }}    比如:我要设定一个页面的显示,距离月底还剩多久  那么:conference_data 这个变量就用于存储 当前时间,比如9.25号  然后:form_data 里面就放一个固定的时间,如果设定 9.30 号,  那么:页面就显示 5 天  做一点文字装饰,就实现了,"距离某事件还要 XX 时间"

7.自定义filter★★★★★,实现自定义的模板语言的过滤方法

具体步骤:

1.在 APP 目录下面新建一个名为 templatetags 的 python 包

2.在新建的包里面新建一个 python文件,名字自定义

3.在新建的python文件中,按照固定格式新建一个自定义的 filter

from django import template    """  固定格式  就这么写,连变量的名字都不要换  """  register = template.Library()      @register.filter()  def add_something(value):      return value + 'something'

4.写完之后,重新启动Django项目

5.在 HTML 页面中,{% load python文件名 %}

6.{{ value|自定义filter名字 }}