码迷,mamicode.com
首页 > 其他好文 > 详细

flask第二十四篇——模板【6】自定义过滤器

时间:2018-04-11 15:03:57      阅读:338      评论:0      收藏:0      [点我收藏+]

标签:==   alert   pac   运行   年龄   自动化   trim   截取字符串   name   

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

 

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

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": 3,
        "upper": "I AM A MAN",
        "lower": "i am a boy",
        "repl": "A, A, A, B",
        "title": ulife 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就是一个自定义的过滤器啦,是不是很简单呢~

 

flask第二十四篇——模板【6】自定义过滤器

标签:==   alert   pac   运行   年龄   自动化   trim   截取字符串   name   

原文地址:https://www.cnblogs.com/captainmeng/p/8794923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!