• flask的jinja2模板中过过滤器的相关小内容


      


    jinja2模板中有自带的过滤器,有需要直接拿来使用。也可以自己定义过滤器

    在过滤器中,有一些常见得操作及关键字。有对字符串的操作,还有对大小写转换的操作。还有对list的操作
    过滤器的语法
    {# 过滤器调用方式 {{ 变量 | 过滤器的名称 }} #} 这里用到了注释模板中的注释

    首先整理一下关键字
    字符串:
    1.对大写转换为小写,lower。相对的,那么就有小写转换为大写,upper。
    那么还有是首字符大写,captialize,这个单词在字符串的操作中出现过
    2.还有一个转义。如果在输出中出现了html标签,那么在输出的时候我又不想显示标签,我只想要标签给我达到的效果,
    而不需要看到标签的出现,就需要转义
    比如:
    safe过滤器,可以禁用转义
    {{ '<strong>hello</strong>' | safe }}
    我们这里用到了safe的关键字。hello就会在输出的时候变为粗体
    在这里要提到另一个过滤器的关键字。striptage
    比如:
    过滤所有的html标签,em标签是斜体。跟转义没有任何关系,只是在过滤标签,把所有文本中的标签过滤掉
    {{ '<em>hello</em>' | striptags }}
    放在这里是要对禁止转义有个区别,safe是实现标签的功能,不输出标签,striptage是把标签过滤掉,只输出文本

    3.字符串反转用到reverse
    {{ '来一个反转' | reverse }}

    list的相关过滤及关键字:
    1.我们可以拿到列表中的首个元素,first
    {{ [100,99,65] | first }}
    2.相对的,我们就可以拿到末尾的元素 last
    {{ [100,90,520] | last }}
    3.我们也可以对list量取长度。length
    {{ [1,2] | length }}
    4.如果list中的元素都为int。也可以求和 sum
    {{ [100,200] | sum }}
    5.list中的int杂乱无序,也可以将list排序 sort
    {{ [12,3,4,56,7,89,8,76,5] | sort }}

    以上的都是对单个的来说,那么对于语句块来说也可以使用,对英文都转换为小写,或者大写都可以
    {% filter upper %}
    hello world hello python hello flask hello jinja2 hello myself hello my broter
    {% endfilter upper %}
    需要注意的是,要有结束

    既然单个的使用过滤器,我们是不是也可以一起配合使用,是的,就会有链式过滤,也就是嵌套过滤,需要注意的是执行顺序
    链式调用(嵌套的使用过滤器)
    {{'abcdefg' | reverse | upper }} 双管道调用,先反转。后大写
    {{'abcdefg' | upper | reverse }} 执行的顺序。谁先谁后要取决先调用了哪个关键字


    jinja2模板给我们有很多的过滤器选择,但是我们也可以自己定义过滤器,首先需要在py文件中配置
    所需要的过滤器。一切代码都是为了业务,代码也是实现业务的需求
    需要注意的是在函数中我们要带有参数,这个参数类似于jquery中的filter所需要带的参数

    # 自定义一个过滤器
    def my_filter(val):
    return '$' + str(val)
    # 把自定义的过滤器赋给模板,第一个参数是自定义的过滤器的名称,第二个是过滤器的名称
    # 这里调用 add_template_filter 这个方法。来对方法名进行传递。
    app.add_template_filter(my_filter, 'my_filter')

  • 相关阅读:
    使用mongodb保存爬取豆瓣电影的数据
    使用scrapy爬取阳光热线问政平台
    使用scrapy爬取手机版斗鱼主播的房间图片及昵称
    使用selenium + chrome爬取中国大学Mooc网的计算机学科的所有课程链接
    使用scrapy爬取腾讯社招,获取所有分页的职位名称及chaolia、类型、人数、工作地点、发布日期超链接
    python2使用bs4爬取腾讯社招
    使用python2爬取百度贴吧指定关键字和分页帖子楼主所发的图片
    提问的智慧
    深刻理解系统架构师和系统分析师定义
    Redis基础数据结构与核心原理
  • 原文地址:https://www.cnblogs.com/binyuei/p/10156612.html
Copyright © 2020-2023  润新知