请关注微信公众号:自动化测试实战

过滤器——format格式化

flaskDemo.py

# coding: utf-8

from flask import Flask, render_template
import flask app = Flask(__name__) # type: Flask
app.debug = True @app.route('/')
def login():
context = {
"user": {
"name": "Warren",
"age": 18,
"gender": None,
"comment": u'<script>alert("弹出框")</script>'}
}
return render_template('index.html', **context) if __name__ == '__main__':
app.run()

index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过滤器</title>
</head>
<body>
<p>绝对值:{{ user.age | abs }}</p>
<p>默认值:{{ user.gender or 'male'}}</p>
<p>转义:{{ user.comment }}</p>
<p>格式化:{{ "姓名:%s,年龄:%s" | format(user.name, user.age) }}</p>
</body>
</html>

我们在html文件中通过format引用姓名和年龄的值,传到模板里,执行代码:

过滤器——last和first(最后一个值和第一个值)

修改context的内容如下:

context = {
"user": {
"name": "Warren",
"age": 18,
"gender": None,
"comment": u'<script>alert("弹出框")</script>'},
"subject": ["math", "Chinese", "biology"]
}

index.html文件增加:

<p>最后一个值:{{ subject | last }}</p>
<p>第一个值:{{ subject | first }}</p>

保存后刷新页面:

还有很多过滤器,下面船长把有必要知道的给大家列在下面的代码里,大家可以去试一下:

flaskDemo.py

# coding: utf-8

from flask import Flask, render_template
import flask app = Flask(__name__) # type: Flask
app.debug = True @app.route('/')
def login():
context = {
"user": {
"name": "Warren",
"age": 18,
"gender": None,
"comment": u'<script>alert("弹出框")</script>'},
"subject": ["math", "Chinese", "biology"],
"num": '',
"upper": "I AM A MAN",
"lower": "i am a boy",
"repl": "A, A, A",
"title": u'life is short, I choose Python',
"space": " abc ",
"tags": u"<p>这是一个HTML标签</p>"}
return render_template('index.html', **context) if __name__ == '__main__':
app.run()


index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过滤器</title>
</head>
<body>
<p>绝对值:{{ user.age | abs }}</p>
<p>默认值:{{ user.gender or 'male'}}</p>
<p>转义:{{ user.comment }}</p>
<p>格式化:{{ "姓名:%s,年龄:%s" | format(user.name, user.age) }}</p>
<p>最后一个值:{{ subject | last }}</p>
<p>第一个值:{{ subject | first }}</p>
<p>序列的长度:{{ subject | length }}</p>
<p>拼接:{{ subject | join(', ') }}</p>
<p>转换成整型:{{ num | int }}</p>
<p>转换成小写:{{ upper | lower }}</p>
<p>转换成小写:{{ lower | upper }}</p>
<p>相同的全部替换:{{ repl | replace('A', 'HERO') }}</p>
<p>只替换一个:{{ repl | replace('A', 'HERO', 1) }}</p>
<p>截取字符串:{{ title | truncate(9) }}</p>
<p>截断单词:{{ title | truncate(9, true) }}</p>
<p>截取前后空格:{{ space | trim }}</p>
<p>删除所有HTML标签:{{ tags | striptags }}</p>
</body>
</html>


执行代码:

flask第二十三篇——模板【5】过滤器的更多相关文章

  1. flask第二十篇——模板【3】

    请关注公众号:自动化测试实战 现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index. ...

  2. Python开发【第二十三篇】:持续更新中...

    Python开发[第二十三篇]:持续更新中...

  3. flask 第四篇 模板语言jinja2

    是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...

  4. flask第十七篇——模板【1】

    从这一节开始我们就正式进入flask一个重要的模块——模板了. 我们平时看的知乎平台就是Python开发的,可以看到他的很多页面布局都是一样的,比如你现在搜“如何自学Python”,去知乎看他的页面是 ...

  5. SpringBoot第二十三篇:安全性之Spring Security

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11350255.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   系统的安全 ...

  6. Python之路【第二十三篇】爬虫

    difference between urllib and urllib2 自己翻译的装逼必备 What is the difference between urllib and urllib2 mo ...

  7. 第二十三篇:在SOUI中使用LUA脚本开发界面

    像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...

  8. Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)

    Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...

  9. Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法

    一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...

随机推荐

  1. 一个很大的文件,存放了10G个整数的乱序数列,如何用程序找出中位数。

    一.梳理审题 一.看清题目: 注意这个题目的量词,这个文件中有10G个整数,而不是这个文件占了10G的内存空间. 二.一些疑问: 在计算机中我们讲的G.M等都是存储容量的概念,但是一般都会在会面加上B ...

  2. Restoring Numbers

                                                                                  D. Restoring Numbers   ...

  3. MyEclipse优化,解决MyEclipse运行慢、卡顿问题

    工具: myeclipse2015 2.0 最近想用myeclipse做一下测试,发现myeclipse运行非常卡,直接影响代码的开发,而且还出现软件卡退的情况,让我十分恼火.   一.加大JVM的非 ...

  4. Ubuntu16.04安装wireshark

    Wireshark是一个非常强大的抓包工具,适用于各种场合,安装配置也简单.这里仅对在Ubuntu上的安装做介绍. 首先通过apt安装WireShark: $ sudo apt-add-reposit ...

  5. STM32之独立版USB(Host)驱动+MSC+Fatfs移植

    源:STM32之独立版USB(Host)驱动+MSC+Fatfs移植 STM32之USB驱动库详解(架构+文件+函数+使用说明+示例程序)

  6. 2017-2018-1 JaWorld 第六、七周作业

    2017-2018-1 JaWorld 第六.七周作业 修改需求规格说明书 上次的<需求规格说明书>初稿有哪些不足? 王译潇同学回答:   1. 引言和目的性考虑的不是很周全.   2. ...

  7. UVA 11475 Extend to Palindrome(hash)题解

    题意:问你最少加几个字母使所给串变成回文串. 思路:一开始打算将正序和逆序都hash,然后用提取前缀后缀的方法来找,但是RE了,debug失败遂弃之.后来发现可以直接hash,一边hash一边比较.我 ...

  8. HDU 3605 Escape(状态压缩+最大流)

    http://acm.hdu.edu.cn/showproblem.php?pid=3605 题意: 有n个人和m个星球,每个人可以去某些星球和不可以去某些星球,并且每个星球有最大居住人数,判断是否所 ...

  9. 【Python】单元测试框架unitest及其高级应用

    Unittest Unittest是python的一个单元测试框架,但是它不仅适用于单元测试,还适用自动化测试用例的开发与执行.我们可以很方便的使用它组织执行测试用例,使用它提供的丰富的断言方法进行测 ...

  10. 史上最强大的40多个纯CSS绘制的图形[转]

    今天在国外的网站上看到了很多看似简单却又非常强大的纯CSS绘制的图形,里面有最简单的矩形.圆形和三角形,也有各种常见的多边形,甚至是阴阳太极和网站小图标,真的非常强大,分享给大家. Square(正方 ...