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. 在java中使用SFTP协议安全的传输文件

    本文介绍在Java中如何使用基于SSH的文件传输协议(SFTP)将文件从本地上传到远程服务器,或者将文件在两个服务器之间安全的传输.我们先来了解一下这几个协议 SSH 是较可靠,专为远程登录会话和其他 ...

  2. .NET Standard 来日苦短去日长

    作者:Richard 翻译:精致码农-王亮 原文:http://dwz.win/Q4h 自从 .NET 5 宣贯以来,很多人都在问这对 .NET Standard 意味着什么,它是否仍然重要.在这篇文 ...

  3. 网络IO模型-异步选择模型(Delphi版)

    其实关于这个模型,网络上也有一个案例说明 老陈使用了微软公司的新式信箱.这种信箱非常先进,一旦信箱里有新的信件,盖茨就会给老陈打电话:喂,大爷,你有新的信件了!从此,老陈再也不必频繁上下楼检查信箱了, ...

  4. 多测师讲解常用的测试工具分为10类_高级讲师肖sir

    我们将常用的测试工具分为10类. 1. 测试管理工具 2. 接口测试工具 3. 性能测试工具 4. C/S自动化工具 5.白盒测试工具 6.代码扫描工具 7.持续集成工具 8.网络测试工具 9.app ...

  5. 第一个月多测师讲解__项目讲解以及注意事项(肖sir)

    一.目的讲解流程:(讲述业务时长10-15分钟为宜)1.自我介绍礼貌用语,姓名,籍贯,学校,个人技能,经验,表现,兴趣爱好等 ,1分钟 ,谢谢2.介绍项目的名字 ,项目的背景,(涉及什么架构)3.对项 ...

  6. ES6的7个实用技巧

    Hack #1 交换元素 利用数组解构来实现值的互换 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // -> hell ...

  7. 并查集算法Union-Find的思想、实现以及应用

    并查集算法,也叫Union-Find算法,主要用于解决图论中的动态连通性问题. Union-Find算法类 这里直接给出并查集算法类UnionFind.class,如下: /** * Union-Fi ...

  8. CentOS7防止root密码被破解

    破解root密码 为了防止服务器被破坏,为了守护业务的和平,在服务器安全方面,首先我们要做到密码的安全.那么知道如何破解root密码才能让我们有针对性的防护.另外如果我们忘掉了root密码,也能知道如 ...

  9. python识别视频黑屏或者低清晰度

    第一步:获取视频第一帧图片 https://www.cnblogs.com/pythonywy/p/13749735.html 第二步:进行识别 import os import numpy as n ...

  10. jenkins自动拉取git分支构建项目

    一,创建jenkins项目 new item ->freestyle project, 自定义一个项目名称 二,配置项目 1,Source Code Management 选择 git,输入gi ...