美文网首页
Python学习

Python学习

作者: 逛逛_堆栈 | 来源:发表于2021-04-30 13:56 被阅读0次

    python-flask框架学习(四)

    flask 模板文件操作

    1、控制操作

    用 {%%} 定义的控制代码块,可以实现一些语言层次的功能,比如循环或者if语句。
    if分支结构

    {% if my_num >= 20%}
       <h2>传递的{{my_num}}大于等于20</h2>
    {% else %}
       <h2>传递的{{my_num}}小于20</h2>
    {% endif %}
    

    循环结构

    <ul>
        {% for item in my_list %}
           <li>{{item}}</li>
        {% endfor %}
    </ul>
    

    2、过滤器

    过滤器的本质就是函数。有时我们不仅需要输出变量的值,还需要对数据格式化、运算等等,而在模板中是不能直接调用 Python 中的某些方法,那么这就用到了过滤器。
    过滤器的使用方式为:变量名 | 过滤器。
    {{variable | filter_name(*args)}}
    注意:在 jinja2 中,过滤器是可以支持链式调用的,类似jquery表示设置也是支持链式编程。

    2.1、常用过滤器

    2.1.1、字符串过滤器
    # upper:把值转成大写
    
    <p>{{ 'hello' | upper }}</p>  # HELLO
    
    # lower:把值转成小写
    
    <p>{{ 'HELLO' | lower }}</p>  # hello
    
    # reverse:字符串反转
    
    <p>{{ 'hello' | reverse }}</p>  # olleh
    
    # title:把值中的每个单词的首字母都转成大写
    
    <p>{{ 'helloworld' | title }}</p>  # HelloWorld
    
    # format:格式化输出
    
    <p>{{ 'my name is %s , I am %d years old' | format('张三',18) }}</p>
    # my name is 张三 , I am 18 years old
    
    # truncate: 字符串截断
    
    <p>{{ 'hello everyone' | truncate(9)}}</p>
    
    
    2.1.2、列表过滤器
    # first:取第一个元素
    
    <p>{{ [1,2,3,4,5,6] | first }}</p>  # 1
    
    # last:取最后一个元素
    
    <p>{{ [1,2,3,4,5,6] | last }}</p>  # 6
    
    # length:获取列表长度
    
    <p>{{ [1,2,3,4,5,6] | length }}</p>  # 6
    
    # sum:列表求和
    
    <p>{{ [1,2,3,4,5,6] | sum }}</p>  # 21
    
    # sort:列表排序
    
    <p>{{ [6,2,3,1,5,4] | sort }}</p>  # [1, 2, 3, 4, 5, 6]
    

    2.2、自定义过滤器

    再flask中,自定义过滤器有两种方式实现。

    1、通过Flask应用对象的add_template_filter方法;
    2、通过装饰器来实现自定义过滤器;

    2.2.1、add_template_filter自定义过滤器

    通过调用应用程序实例的 add_template_filter 方法实现自定义过滤器。该方法第一个参数是函数名,第二个参数是自定义的过滤器名称。
    1、创建方法、比如说列表反转

    def list_reverse(li):
        temp = list(li)
        temp.reverse()
        return temp
    

    2、加入add_template_filter

    app.add_template_filter(list_reverse,'list_reverse')
    

    3、测试使用

    自定义列表反转
    <p>{{ [1,2,3,4,5] | list_reverse }}</p>  # [5,4,3,2,1]
    
    2.2.2、装饰器实现自定义过滤器

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

    @app.template_filter('list_reverse')
    def list_reverse(li):
        temp = list(li)
        temp.reverse()
        return temp
    

    2、测试使用

    自定义列表反转
    <p>{{ [1,2,3,4,5] | list_reverse }}</p>  # [5,4,3,2,1]
    

    相关文章

      网友评论

          本文标题:Python学习

          本文链接:https://www.haomeiwen.com/subject/npulrltx.html