最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Flask模板过滤器的基础知识

    正文概述    2020-03-06   719

    Flask模板过滤器的基础知识

    什么是过滤器

    过滤器的本质就是函数。有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,这就用到了过滤器。

    过滤器的使用方式为:变量名 | 过滤器。 过滤器名写在变量名后面,中间用 | 分隔。

    {{variable | filter_name(*args)}}

    如果没有任何参数传给过滤器,则可以把括号省略掉

    {{variable | filter_name}}

    链式调用

    在 jinja2 中,过滤器是可以支持链式调用的,示例如下:

    {{ "hello world" | reverse | upper }}

    过滤器的使用

    safe :禁用转义

    {{ '<em>hello</em>'|safe}} <br>

    capitalize:首字母大写

    {{ 'hello world' | capitalize }}

    lower 把所有字母转换为小写

    {{ 'HELLO'|lower }}

    upper 把所有字母转换成大写

    {{ 'hello' | upper }}

    title 把值里面的每个单词的首字母大写

    {{ 'big big world' | title }}

    trim 把值的首尾空格去掉

    u{{ 'xixihahaheihei' |trim }}u
    <br>
    u{{'xixihahaheihei'}}u

    reverse:字符串反转

    {{ 'hello' | reverse }}

    format:格式化输出

    {{ "%s is %d" | format("ryang",24) }}

    striptags:渲染之前把值中所有的HTML标签都删掉

    <p>{{ '<em>hello</em>' | striptags }}</p>

    truncate:字符串截断

    <p>{{ 'hello every one' | truncate(9)}}</p>

    列表操作

    first:取第一个元素

    {{ [3,4,5,6,7]|first }}

    last:取最后一个元素

    {{ [3,4,5,6,7]|last }}

    length:获取列表的长度

    {{ [1,2,3,4,5,6]|length }}

    sum:列表求和

    {{ [1,2,3,4,5,6]|sum }}

    sort:列表排序

    {{ [4,5,6,2,1]|sort }}

    语句块过滤:

    {% filter upper %}
        this is a Flask Jinja2 introduction
    {% endfilter %}

    自定义过滤器

    过滤器的本质是函数。当模板内置的过滤器不能满足需求,可以自定义过滤器。自定义过滤器有两种实现方式:一种是通过Flask应用对象的add_template_filter方法。还可以通过装饰器来实现自定义过滤器。

    自定义的过滤器名称如果和内置的过滤器重名,会覆盖内置的过滤器。

    实现方式一

    通过调用应用程序实例的add_template_filter 方法实现自定义过滤器,该方法的第一个参数是函数名,第二个参数是自定义的过滤器的名称。

    def filter_double_sort(ls):
        return ls[::2]
    app.add_template_filter(filter_double_sort,'double_2')
    {{ [1,2,3,4,5,6,7,8] | double_2 }}

    实现方式二

    用装饰器来实现自定义过滤器。装饰器传入的参数是自定义的过滤器名称。

    @app.template_filter('double_2')
    def filter_double_sort(ls):
        return ls[::2]

    模板注释

    模板中的注释使用{# 注释内容 #}来定义,不会出现在生成的HTML中,例如:

    {# 我是注释 #}

    众多python培训视频,尽在python学习网,欢迎在线学习!

    本文转自:https://blog.csdn.net/Enjolras_fuu/article/details/79894951


    下载网 » Flask模板过滤器的基础知识

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元