请关注孟船长的公众号:自动化测试实战

大家想了解其他过滤器可以参考这里:

http://jinja.pocoo.org/docs/dev/templates/#builtin-filters

---------

自定义过滤器

这里要用到装饰器template_filter('过滤器名字'),代码:

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, B",
"title": u'life is short, I choose Python',
"space": " abc ",
"tags": u"<p>这是一个HTML标签</p>"}
return render_template('index.html', **context) @app.template_filter('del')
def mydel(value, word):
return value.replace(word, '') 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>
<p>自定义过滤器del:{{ repl | del('A') }}</p>
</body>
</html>

  

我们运行代码,发现A全部被删掉了,只剩下逗号:

上面的mydel就是一个自定义的过滤器啦,是不是很简单呢~

最新文章

  1. 关于SubSonic3.0未处理InvalidOperationException异常(关键字TOP附近有语法错误)的处理
  2. 前端学习之本地储存与cookie
  3. C++函数传指针和传引用的区别
  4. Android关于buildToolVersion与CompileSdkVersion的区别
  5. zju 2972 Hurdles of 110m(简单的dp)
  6. C#_Fileuploadify_notMvc_description
  7. Linux内存初始化
  8. Linux Object-C 编译环境安装
  9. DevExpress 学习使用之 ComboBoxEdit
  10. JQuery Easy Ui dataGrid 数据表格 --&gt;转
  11. 在点击div中的p时,如何阻止事件冒泡?
  12. CUSTOM.PLL的使用
  13. 关于Failed to check the status of the service com.taotao.service.ItemService. No provider available fo
  14. 视频截图Util
  15. 互评Final版本
  16. 尝试asp.net mvc 基于controller action 方式权限控制方案可行性(转载)
  17. #pragma init_seg
  18. TJU Problem 1644 Reverse Text
  19. Data Encryption Errors After Restoring Microsoft Dynamics CRM Database
  20. 018 final 关键字的用途

热门文章

  1. smarty简单语法
  2. P1879 [USACO06NOV]玉米田Corn Fields(状压dp)
  3. poj3318 Matrix Multiplication
  4. duilib : 滑动显示的窗口实现以及 悬浮窗 (转载)
  5. Elasticsearch之中文分词器插件es-ik(博主推荐)
  6. 分布式缓存--系列1 -- Hash环/一致性Hash原理
  7. Kotlin中常量和静态方法
  8. java中字面量,常量和变量之间的区别(附:Integer缓存机制)
  9. WPF资源
  10. ✅javascript 语法:附加子节点