video17 jinja2过滤器

过滤器通过管道符号进行使用。如{{ name | length }}将返回name的长度,过滤器相当于是一个函数。

1 def hello_world():
2 intro = '' #这里为空或None时候会显示默认值。
3 return render_template('index.html',intro=intro)
4
5 {{ intro | default('此人很懒,没留下信息。',boolean =True)}}
或者:
{{ intro or '此人很懒,没留下信息。' }}


这里的or和python中一样,都为真则取第一个,都为假就取后一个。

video20 自定义过滤器

以下为一个字符串替换的过滤器。

 1 @app.route('/')
2 def hello_world():
3 intro = 'hello,world!what are you...?'
4
5 return render_template('index.html',intro=intro)
6
7 @app.template_filter('my_cut')
8 def cut(value):
9 value = str(value).replace('hello','Hi')
10 return value
11
12
13 {{ intro | my_cut }}

下面讲一个时间戳的过滤器。

 1 @app.route('/')
2 def hello_world():
3 intro = 'hello,world!what are you...?'
4 create_time = datetime(2019,8,15,12,32,15) #设置任意时间
5 return render_template('index.html',intro=intro,create_time=create_time)
6
7 @app.template_filter('handle_time') #设置过滤器名称
8 def handle_time(time):
9 if isinstance(time,datetime):
10 now = datetime.now()
11 timestamp = (now - time).total_seconds() #换算为秒
12 if timestamp < 60:
13 return '刚刚'
14 elif timestamp >= 60 and timestamp < 60* 60:
15 return "%s分钟前" %str(int(timestamp / 60))
16 elif timestamp >= 60 * 60 and timestamp < 60 * 60 * 24:
17 return "%s小时前" % str(int(timestamp / 60 / 60))
18 elif timestamp > 60 * 60 * 24:
19 return time.strftime('%Y/%m%d %H:%M') #按照‘2019/0815 12:32’格式输出
20 else:
21 return time.strftime('%Y/%m%d %H:%M')
22
23
24 {{ create_time | handle_time }}

video22 条件判断

video23 for循环

video25 宏

这部分请移步:https://www.cnblogs.com/two-peanuts/p/11341367.html

3 jinja2模板的更多相关文章

  1. Flask 框架下 Jinja2 模板引擎高层 API 类——Environment

    Environment 类版本: 本文所描述的 Environment 类对应于 Jinja2-2.7 版本.   Environment 类功能: Environment 是 Jinja2 中的一个 ...

  2. Python框架学习之Flask中的Jinja2模板

    前面也提到过在Flask中最核心的两个组件是Werkzeug和Jinja2模板.其中Werkzeug在前一节已经详细说明了.现在这一节主要是来谈谈Jinja2模板. 一.为什么需要引入模板: 在进行软 ...

  3. python操作三大主流数据库(5)python操作mysql⑤使用Jinja2模板提取优化页面展示

    python操作mysql⑤使用Jinja2模板提取优化页面展示 在templates目录下的index.html.cat.html等页面有一些共同的元素,代码比较冗余可以使用模板提取公共代码,在各网 ...

  4. Flask框架(2)-JinJa2模板

    为了把业务逻辑和表现逻辑分开,Flask把表现逻辑移到JinJa2模板,模板是一个包含响应文本的文件.它用占位变量表示动态部分,其具体要从请求上下文才知道. 把真实值替换掉占位变量成为渲染,JinJa ...

  5. 02 flask 请求钩子、异常捕获、上下文、Flask-Script 扩展、jinja2 模板引擎、csrf防范

    一 请求勾子 在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,比如: 在请求开始时,建立数据库连接: 在请求开始时,根据需求进行权限校验: 在请求结束时,指定数据的交互格式: 为了让每个 ...

  6. SaltStack 使用 Jinja2 模板

    Jinja2 是基于 python 的一个模板引擎,如下,使用 Jinja2 实现根据不同的操作系统分发不同的文件: [root@localhost ~]$ cat /srv/salt/test.sl ...

  7. 自定义Web框架与jinja2模板

    web应用与web框架 web应用 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端 import socket def handle_reque ...

  8. Flask从入门到精通之Jinja2模板引擎

    我们使用一个简单的例子切入到Jinja2模板引擎,形式最简单的Jinja2模板引擎就是一个包含响应文本的文件,实例如下: <h1>Hello World!</h1> 最简单的包 ...

  9. flask的jinja2模板中过过滤器的相关小内容

    jinja2模板中有自带的过滤器,有需要直接拿来使用.也可以自己定义过滤器 在过滤器中,有一些常见得操作及关键字.有对字符串的操作,还有对大小写转换的操作.还有对list的操作 过滤器的语法 {# 过 ...

  10. flask框架下的jinja2模板引擎(3)(模板继承与可以在模板使用的变量、方法)

    flask 框架下的jinja2模块引擎(1):https://www.cnblogs.com/chichung/p/9774556.html flask 框架下的jinja2模块引擎(2):http ...

随机推荐

  1. JVM 第四篇:可视化 JVM 故障处理工具

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 可视化工具 在 JDK 中为我们提供了大量的 JVM 故障处理工具,都在 JDK 的 bin 目录下: 这其中除了大量的命令行工具以外,还 ...

  2. List移除另外一个list的时候报错,java.lang.UnsupportedOperationException

    问题 编写代码的时候,使用Mybatis-plus分页查询返回的list,移除自己new的ArrayList报错 根据异常信息,发现mybatis-plus分页查询返回的list底层并没有实现remo ...

  3. docker-管理容器常用命令

    1. docker-管理容器常用命令 2. docker管理容器常用命令 1)  docker ps 显示当前正在运行的容器 [root@test-1 ~]# docker ps CONTAINER ...

  4. org.apache.ibatis.ognl.OgnlException: source is null for getProperty(null, "enterpCd")-Mybatis报错

    一.问题由来 下午快要下班时,登录测试服务器查看日志信息,看看有没有新的异常信息,如果有的话好及时修改.结果一看果然有新的异常信息. 主要的异常信息如下: 2020-10-13 14:51:03,03 ...

  5. linux的pci驱动模型

    做个笔记 linux通过pcibios_scan_root函数以深度优先的算法搜索整个pci架构,建立一个树形的链表,如下: 之后再调用pci_bus_add_devices函数把所有搜索到的pci_ ...

  6. uc浏览器手机版,页面图片不显示

    uc浏览器手机版,有时候上面的轮播广告看不到 原因:uc浏览器会拦截所有带ad的标签 例如: <div id="adDiv"> <img src="/r ...

  7. C语言/C++编译环境的设置!有的人还没开始就卡住了!

    本地环境设置 如果您想要设置 C++ 语言环境,您需要确保电脑上有以下两款可用的软件,文本编辑器和 C++ 编译器. 文本编辑器 这将用于输入您的程序.文本编辑器包括 Windows Notepad. ...

  8. mac安装go环境

    下载pkg文件 https://golang.google.cn/dl/   sudo vim /etc/profile export GOROOT=/usr/local/go export GOPA ...

  9. selenium-窗口切换

    方法一 # 获取打开的多个窗口句柄 windows = driver.window_handles # 切换到当前最新打开的窗口 driver.switch_to.window(windows[-1] ...

  10. UI-个人作品集

    前言 现在需要将之前做过的UI设计集起来,并做些好看的设计 设计思路 开头>技能>作品>结束 开头 我使用线条来构图 以及比较融合的背景进行衬托主题 技能 通过文字与图形搭配展示出我 ...