Flask(jinja2)——过滤器的使用

一、前置问题

1、什么是过滤器?

        在Jinja2模板引擎中,过滤器是一种特殊的功能,用于修改变量的输出,从而转换或处理模板中的数据显示。

2、过滤器能干什么?

        变量可以通过 过滤器 修改。过滤器与变量用管道符号( | )分割,并且也 可以用圆括号传递可选参数。多个过滤器可以链式调用,前一个过滤器的输出会被作为后一个过滤器的输入。

二、实际运用(计算字符串的长度)

例如 {{ user.username|length }}用于获取用户用户名的长度。。过滤器接受带圆括号的参数,如同函数调用。例{{ list|join(', ') }} 这个例子会把一个列表用逗号连接起来 。

1、app.py

from flask import Flask, render_template

app = Flask(__name__)

class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email

@app.route("/filter")
def filter_demo():
    user = User(username="小陈", email="xiaochen@qq.com")
    return render_template("filter.html", user=user)

2、filter.html

<div>{{ user.username }}-{{ user.username|length }}</div>

 3、运行结果

三、自定义过滤器 

1、app.py

from flask import Flask, render_template
from datetime import datetime

app = Flask(__name__)


# 自定义过滤器
def datetime_format(value, format="%Y年%m月%d日 %H:%M"):
    return value.strftime(format)


# 首先,定义一个名为datetime_format的函数,该函数接受一个datetime对象作为参数,并返回一个格式化的字符串。
# 然后,在Flask应用中使用app.add_template_filter()方法将datetime_format函数注册为名为"dformat"的模板过滤器。
app.add_template_filter(datetime_format, "dformat")


class User:
    def __init__(self, username, email):
        self.username = username
        self.email = email


@app.route("/filter")
def filter_demo():
    user = User(username="小陈", email="xiaochen@qq.com")
    now_time = datetime.now()
    return render_template("filter.html", user=user, now_time=now_time)

 2、filter.html

<div>{{ now_time|dformat }}</div>

3、运行结果

四、jinja2内置过滤器清单

了解更多过滤器功能,访问下方地址👇

jinja2中文官方文档网址:模板设计者文档 — Jinja2 2.7 documentation

 

 下一章节:Flask(jinja2)——控制语句-CSDN博客

上一章节:Flask(Jinja2)——模板访问对象属性-CSDN博客 

相关推荐

  1. 过滤器简单使用

    2024-07-15 19:58:01       62 阅读
  2. 布隆过滤器实现及使用

    2024-07-15 19:58:01       34 阅读
  3. SpringBoot Filter过滤器使用

    2024-07-15 19:58:01       34 阅读
  4. 使用FFmpeg开发2-比特流过滤器

    2024-07-15 19:58:01       52 阅读
  5. vue2使用过滤器实现菜单栏文字动态显示

    2024-07-15 19:58:01       28 阅读
  6. Vue中表单数据和过滤器简单使用

    2024-07-15 19:58:01       52 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 19:58:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 19:58:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 19:58:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 19:58:01       69 阅读

热门阅读

  1. goframe 之ORM链式封装

    2024-07-15 19:58:01       23 阅读
  2. 高通平台android的Framework开发遇到的一些问题总结

    2024-07-15 19:58:01       21 阅读
  3. 第六章 动画【Android基础学习】

    2024-07-15 19:58:01       18 阅读
  4. 【爬虫】爬虫基础

    2024-07-15 19:58:01       20 阅读
  5. CSS 技巧与案例详解:开篇介绍

    2024-07-15 19:58:01       21 阅读
  6. 力扣刷题之2732.找到矩阵中的好子集

    2024-07-15 19:58:01       21 阅读
  7. golang基础用法

    2024-07-15 19:58:01       18 阅读
  8. shell脚本传参调用http接口

    2024-07-15 19:58:01       17 阅读
  9. JsonCPP源码分析——分配器和配置器

    2024-07-15 19:58:01       16 阅读