前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >day63-Django基础-常用内置过滤器+自定义过滤器+模板语言{%load%}

day63-Django基础-常用内置过滤器+自定义过滤器+模板语言{%load%}

原创
作者头像
少年包青菜
修改2020-08-07 17:52:02
6170
修改2020-08-07 17:52:02
举报
文章被收录于专栏:Python 学习Python 学习

# 模板过滤器,冒号后面不能有空格!!!

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

代码语言:javascript
复制
{{ value|default:"暂无信息"}}
当我的 value 值不存在的时候,就会用 "暂无信息" 来替换

2.length,显示变量的长度

代码语言:javascript
复制
{{ value|length }}

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

3.data,格式化当前时间

代码语言:javascript
复制
{{ value|date:"Y-m-d H:i:s"}}

按照当前定制的格式,显示时间

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

代码语言:javascript
复制
{{ value|cut:' ' }}

如果 value 的值是 "from selenium import webdriver",则会变成"fromseleniumimportwebdriver",去了空格

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

代码语言:javascript
复制
{{ blog_date|timesince:comment_date }}

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

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

代码语言:javascript
复制
{{ conference_date|timeuntil:from_date }}

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

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

1.在 APP 目录下面新建一个名为 templatetags 的 python 包,django规定:名字必须是 templatetags,必须是一个包!

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

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

4.函数最多接受俩参数,第一个value为模板中上下文的值,第二个为xxx,{value|add_something:'xxx'}

代码语言:javascript
复制
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名字 }}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.default,变量为空或者不存在的时候,替换默认值
  • 2.length,显示变量的长度
  • 3.data,格式化当前时间
  • 4.cut去值,类似循环做替换
  • 5.timesince,一般用于 "多久之前" 的页面显示
  • 6.timeuntil,一般用于,"距离某事件还需要多久" 的页面展示
  • 7.自定义filter★★★★★,实现自定义的模板语言的过滤方法
    • 1.在 APP 目录下面新建一个名为 templatetags 的 python 包,django规定:名字必须是 templatetags,必须是一个包!
      • 2.在新建的包里面新建一个 python文件,名字自定义
        • 3.在新建的python文件中,按照固定格式新建一个自定义的 filter
          • 4.函数最多接受俩参数,第一个value为模板中上下文的值,第二个为xxx,{value|add_something:'xxx'}
            • 4.写完之后,重新启动Django项目
            • 5.在 HTML 页面中,{% load python文件名 %}
            • 6.{{ value|自定义filter名字 }}
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档