10_jinja2模板过滤器

目录

  • Jinja2模板过滤器
  • 常用过滤器
    • 列表操作

Jinja2模板过滤器

常用过滤器

  1. default: 有则使用传的,没则使用默认值
    使用方式: {{ value|default(‘默认值‘) }}, 如果value这个key不存在,则会使用default过滤器提供的默认值。如果你想使用类似于python中判断一个值是否为False (例如:None, 空字符串,空列表,空字典等), 那么就必须要传递另外一个参数{{ value|default(‘默认值‘, boolean=True) }}, 可以使用or来替代default(‘默认值‘, boolean=True)
{{ name|default('连名字你都懒得留') }}

{{ name|default('连名字你都懒得留', boolean=True) }}
{{ name or '连名字你都懒得留' }}
  1. abs(value): 返回一个数值的绝对值。如: -1|abs
  2. 关于转义:
    safe过滤器: 可以关闭一个字符串的自动转义, 禁用转义
    escape过滤器: 对某一个字符串进行转义
    autoescape标签: 可以对他里面的代码块关闭或开启自动转义
{% autoescape off/on %}
    ...代码块
{% endautoescape %}
  1. first: 返回一个序列的第一个元素. 如: names|first
  2. last: 返回最后一个值。 如: names|last.
  3. format: 格式化字符串
{{ '我的名字是: %s'|format(username) }}
  1. length: 返回一个序列类型的长度, 如: names|length
  2. join: 将一个序列,用指定的参数拼接成字符串
# 后台:
@app.route('/')
def index():
    context = {
        'username': 'cheng',
        'age': 18,
        'country': '',
        'names': ['ceng', 'yan', 'cheng', 'long', 'dong', 'zhu']
    }
    return render_template('index.html', **context)

# 前台
{{ names|join('/') }}

# 结果:
ceng/yan/cheng/long/dong/zhu
  1. int: 将值转换为 int 类型
    10, float: 将值转换为 float 类型
  2. lower: 将字符串转换为小写
  3. upper: 将字符串转换为大写
  4. string: 将变量转换为字符串
  5. replace: 替换字符串
# 将字符串中所有的 hello 替换成 hi
{{ 'hello world aaa bbb hello'|replace('hello', 'hi') }}
  1. truncate: 截取指定长度的字符串
{{ article|truncate(length=8) }}
  1. striptags: 删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格
  2. trle: 截取字符串前面和后面的空白字符
  3. wordcount: 计算一个长字符串中单词的个数
{{ article|wordcount }}
  1. title: 把值中的第个单词的首页字母变成大写
  2. capitalize: 把变量值的首字母转成大写,其余字母转小写
    capitalize过滤器的使用结果: {{ 'capitalize Hello HHHH aAAA'|capitalize }}
    
    结果为:
    capitalize过滤器的使用结果: Capitalize hello hhhh aaaa
  3. trim: 把值的首尾空格去掉
  4. reverse: 字符串的反转
    {{'hello world'|reverse}}
    
    结果为:
    dlrow olleh

列表操作

  • first: 取第一个元素
  • last: 取最后一个元素
  • length: 获取列表的长度
  • sum: 列表求和
  • sort: 列表排序
{{ [1, 2, 3, 4, 5]|first }}
{{ [1, 2, 3, 4, 5]|last }}
{{ [1, 2, 3, 4, 5]|length }}
{{ [1, 2, 3, 4, 5]|sum }}
{{ [8, 1, 6, 4, 5]|sort }}

原文地址:https://www.cnblogs.com/nichengshishaonian/p/11631702.html

时间: 2024-08-30 15:22:13

10_jinja2模板过滤器的相关文章

Django 模板过滤器列表(转)

Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的,如显示格式的转换.判断处理等.以下是 Django 过滤器列表,希望对为大家的开发带来一些方便. 一.形式:小写 {{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 标签 {{ my_text|escape|linebreaks }} 三.过滤器的参数 显示前30个字 {{ bio | truncatewords:"30" }} 格式化 {{ pub_date | da

django 第五课自定义模板过滤器与标签

代码布局:(自定义的代码放在哪里) 某个app特有的 app目录下,templatetags文件夹需要放 __init__.py 在到templetags文件夹下创建python模块(py文件) 定义复用 创建要给新的app,将他们定义在新的app中,在INSTALL_APPS 注册,然后可以应用 自定义模板过滤器 模板过滤器是什么? 函数,一个或两个参数 第一个参数是传递进来的模板变量 第二个参数,普通的参数,也可以是默认也可以不要其实就是个函数,没有什么不同在app目录teacher下创建t

三、模板变量及模板过滤器

三.模板变量及模板过滤器 1.模板路径总结 1.1新建一个新的app python manage.py startapp student 1.2 配置app下的templates文件夹 INSTALLED_APPS = [   'django.contrib.admin',   'django.contrib.auth',   'django.contrib.contenttypes',   'django.contrib.sessions',   'django.contrib.message

django模板&过滤器

django模板&过滤器 声明:部分信息来源这篇博客https://www.cnblogs.com/maple-shaw/articles/9333821.html MVC: 模型(model)-------->模型 视图(view)----->html 控制器(controller)--------->业务逻辑 Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性. Django框架的不同之处在于它拆分的三部分为:Model(模型).Te

DJANGO之自定义模板过滤器

我查找了DJANGO模板的过滤器,好像指定字符串包含指定关-键字符的过滤器没有呢, 没有硬着头-皮,按网上其它人的作法,写了一个,成功了...:) 参考URL: http://liuzhijun.iteye.com/blog/1884630 http://www.xxx.com/html/2013/pythonweb_1017/588.html templatetags目录下的deploy_filter.py文件如下: #!/usr/bin/env python # coding:utf-8 f

django 自定义模板过滤器

参考:http://www.cnblogs.com/qwj-sysu/p/4246605.html 做的页面,一个tr里有两个td, 1.3.5等奇数数据要放在第一个td, 2.4.6等偶数数据要放在第二个td, (如果已经没有数据,td 内容要为空), 所以要根据取余数的结果来判断; 但django的模板没有取余操作,只好自定义一个 django的模板配置在:setting.py TEMPLATES = [ { 'BACKEND': 'django.template.backends.djan

flask基础之jinja2模板-过滤器

上一节主要是介绍了jinja2基本的结构及表现形式,本节介绍模板变量的处理技术:过滤器 一.过滤器 过滤器通过管道符号"|"与变量连接,并且可以通过圆括号传递参数. {{  variable|default('param')  }} 解释: variable,待转换的变量 default,是过滤器,含义是:判断被转换的变量是否被定义过,如果没有被定义,则用字符串参数替换被转换的变量, 比如,abs(number)过滤器,将被转换的变量转换为绝对值形式.attr(object,name)

Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)

阅读目录(Content) 模板语法之变量 模板之过滤器 default length filesizeformat date slice truncatechars safe 模板之标签 自定义标签和过滤器 模板继承 (extend) 模板语法之include 前言:当我们想在页面上给客户端返回一个当前时间,一些初学者可能会很自然的想到用占位符,字符串拼接来达到我们想要的效果,但是这样做会有一个问题,HTML被直接硬编码在 Python代码之中. 1 2 3 4 def current_dat

11_自定义flask_jinja2模板过滤器

自定义过滤器 自定义的过滤器如果和内置的过滤器重名,会覆盖内置的过滤器 过滤器本质上就是一个函数.如果在模板中调用这个过滤器.那么就会将这个变量的值作为第一个参数传递给过滤器这个函数,然后函数的返回值会作为这个过滤器的返回值. 1. 通过add_template_filter(过滤器函数名, 模板中使用的过滤器名字) ... def filter_double_sort(li): """自定义的过滤器函数""" return li[::2] #