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

过滤器——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. IBM WebSphere MQ for net 报错 MQRC_NOT_AUTHORIZED

    最近进入新公司要维护以前的90年代的老系统 用NET对IBMMQ做测试 NET 4.0 +7.5 MQ 版本 待我写好NET调用的代码后出现错误MQRC_NOT_AUTHORIZED 折腾大半天往上找 ...

  2. 安装memcached扩展 验证过了可行

    . 安装libmemached 复制代码 代码如下: wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached ...

  3. 《Python网络编程基础》第四章 域名系统

    域名系统(DNS) 是一个分布式的数据库,它主要用来把主机名转换成IP地址.DNS以及相关系统之所以存在,主要有以下两个原因:   它们可以使人们比较容易地记住名字,如www.baidu.com. 它 ...

  4. update t_conference set c_address = replace(c_address,'中华人民共和国','');

    update t_conference set c_address = replace(c_address,'中华人民共和国','中国');      //把c_address字段中的‘中华人民共和国 ...

  5. STM32示波器 信号发生器

    源: STM32示波器 信号发生器

  6. Java笔记 #01# 最近遇到的几个Throwable

    续<Java入门第三季>第一章 异常与异常处理. 1.StackOverflowError 第一次碰到这个 Error 居然有点小激动,原因当然是因为它叫 StackOverflow Q: ...

  7. 清理tomcat日志大的文件

    先看一个命令: [root@weblogic logs]# catalina.--.log icatalina.--:-.out icatalina.--:-.out localhost_access ...

  8. Mac下将C程序创建为动态链接库再由另一个C程序调用

    写C的时候需要调用之前的一个C程序,想用动态链接库的方式.Mac下的动态链接库是dylib,与Linux下的.os或Windows下的.dll不同.由于之前没有接触过,所以翻了大量的博客,然而在编译过 ...

  9. 我的第一个Windows服务

    代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

  10. Asynchronous Programming Using Delegates使用委托进行异步编程

    http://msdn.microsoft.com/zh-cn/library/22t547yb(v=vs.110).aspx https://github.com/chucklu/Test/tree ...