flask第二十三篇——模板【5】过滤器
请关注微信公众号:自动化测试实战
过滤器——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】过滤器的更多相关文章
- flask第二十篇——模板【3】
请关注公众号:自动化测试实战 现在我们通过查询字符串的方式给render_template传参,我们就要用到flask库的flask.request.args.get()函数先获取参数,在index. ...
- Python开发【第二十三篇】:持续更新中...
Python开发[第二十三篇]:持续更新中...
- flask 第四篇 模板语言jinja2
是时候开始写个前端了,Flask中默认的模板语言是Jinja2 现在我们来一步一步的学习一下 Jinja2 捎带手把 render_template 中留下的疑问解决一下 首先我们要在后端定义几个字符 ...
- flask第十七篇——模板【1】
从这一节开始我们就正式进入flask一个重要的模块——模板了. 我们平时看的知乎平台就是Python开发的,可以看到他的很多页面布局都是一样的,比如你现在搜“如何自学Python”,去知乎看他的页面是 ...
- SpringBoot第二十三篇:安全性之Spring Security
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11350255.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 系统的安全 ...
- Python之路【第二十三篇】爬虫
difference between urllib and urllib2 自己翻译的装逼必备 What is the difference between urllib and urllib2 mo ...
- 第二十三篇:在SOUI中使用LUA脚本开发界面
像写网页一样做客户端界面可能是很多客户端开发的理想. 做好一个可以实现和用户交互的动态网页应该包含两个部分:使用html做网页的布局,使用脚本如vbscript,javascript做用户交互的逻辑. ...
- Python之路【第二十三篇】:Django 初探--Django的开发服务器及创建数据库(笔记)
Django 初探--Django的开发服务器及创建数据库(笔记) 1.Django的开发服务器 Django框架中包含一些轻量级的web应用服务器,开发web项目时不需再对其配置服务器,Django ...
- Python之路(第二十三篇) 面向对象初级:静态属性、静态方法、类方法
一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class R ...
随机推荐
- (1)了解cocostudio基础
操作界面 Cocos Studio的界面主要分为菜单栏.工具栏.对象面板.资源面板.画布面板.属性面板.动画面板.输出窗口.状态栏九部分组成,如下图: 菜单栏 菜单栏为Cocos Studio ...
- C语言的 32个关键之和9个控制语言之关键字
auto break case char const continue default do double else enum extern float for goto ...
- Kylo 入坑记
一.概述 Kylo,作为一个基于 Spark 和 NiFi 的开源数据湖编排框架,解决对数据湖获取.治理.感知和技术支持等诸多问题.Kylo 将数据湖的很多功能自动化,包括数据接入.准备.分析发现.P ...
- hdu 5111 树链剖分加函数式线段树
这题说的是给了两棵树,各有100000 个节点,然后Q个操作Q<=50000; 每个操作L1 R1 L2 R2.因为对于每棵树都有一个与本棵树其他点与众不同的值, 最后问 在树上从L1到R1这条 ...
- Entity Framework Code First在Oracle下的伪实现(转)
为什么要说是伪实现,因为还做不到类似MsSql中那样完全的功能.Oralce中的数据库还是要我们自己手动去创建的.这里,我们舍掉了Model First中的EDMX文件,自己在代码里面写模型与映射关系 ...
- python 手动遍历迭代器
想遍历一个可迭代对象中的所有元素,但是却不想使用for 循环 为了手动的遍历可迭代对象,使用next() 函数并在代码中捕获StopIteration 异常.比如,下面的例子手动读取一个文件中的所有行 ...
- 20155201 实验五《Java面向对象程序设计》实验报告
20155201 实验五<Java面向对象程序设计>实验报告 一.实验内容 1. 数据结构应用 2. 结对编程:利用IDEA完成网络编程任务,1人负责客户端,1人负责服务器 3. 密码结对 ...
- [转][修]sprintf()函数:将格式化的数据写入字符串
头文件:#include <stdio.h>功能:用于将格式化的数据写入字符串 原型:int sprintf(char *str, char * format [, argument, . ...
- Google V8 引擎 原理详解
V8 引擎概览 V8 引擎简介 Google V8 引擎使用 C++ 代码编写,实现了 ECMAScript 规范的第五版,可以运行在所有的主流 操作系统中,甚至可以运行在移动终端 ( 基于 ARM ...
- .Net t图片生成水印
借鉴于博客园园友的方法,大神神风(https://www.cnblogs.com/tandyshen/archive/2012/04/14/picwater.html) ,很实用的一种 自定义水印方法 ...