jinja2

作者: 马梦里 | 来源:发表于2018-01-02 14:53 被阅读0次

    jinja2 语言的语法一般被 {% %} 包裹,python 的语法一般被 {{ }} 包裹;

    • set:赋值语法,一般将较长变量赋值给较短变量,书写方便;
    • 过滤器:对数据进行操作
      {% topic.replies() | count %}:左边将作为右边函数的第一个参数
      常用过滤器有:
      • length 长度
      • capiitalize 首字母大写
      • center 居中
      • count 个数

    自定义过滤器:

    @app.add_template_filter
    def test1(input):
        r = 'process {} using test filter'.format(input)
        return r
    

    装饰器的语法是固定的,那么现在 test1() 函数就是一个过滤器:
    {% majun | test1 %}
    majun 将作为 test1 函数的第一个参数,输出为:
    process majun using test filter
    当过滤器函数只有一个参数时,不带 (),只写函数名称,有多个参数时,不写第一个参数,因为左边数据就是第一个参数。

    1. {% set u = topic.user() %}
      jinja2set 语法,相当于赋值于一个名称短的变量,方便书写。
    2. {{ topic.replies() | count }}
    3. {{ loop.index }}楼 / {{ loop.length }}楼
      loop 是 jinja2 的语法,在循环语句 {% for ... %} 内部使用:
      loop.index     :表示迭代到当前的索引,从1开始计算
      loop.index0    :迭代到当前的索引,从0开始计算
      loop.revindex  :相对于序列末尾的索引,从1开始计算
      loop.revindex0 :相对于序列末尾的索引,从0开始计算
      loop.first     :bool值,序列的第一个为True,其他为False
      loop.last      :和 loop.first 相反
      loop.length    :序列总长度
      

    相关文章

      网友评论

          本文标题:jinja2

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