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名字 }}
