• Flask的jinja2模板中自定义过滤器的使用


    大部分的模板引擎都是支持过滤器功能的,jinja2也不例外,它提供了丰富的内置过滤器,但是有些时候还是没办法满足我们的需求,好在jinja2支持自定义过滤器,下面是一个简单的例子。

    下面的例子完成了自定义过滤器,包括过滤器有一个参数和多个参数的使用

    test.py
    # -*- coding:utf-8 -*-
    __author__ = 'guoqianqian'

    from flask import Flask
    from flask_script import Manager
    from flask import render_template

    app = Flask(__name__)
    manager = Manager(app)

    def mylen(arg):#实现一个可以求长度的函数
    return len(arg)

    # 该函数实现给定一个区间返回区间的内容
    def interval(test_str, start, end):#过滤器中传递多个参数,第一个参数为被过滤的内容,第二第三个参数需要自己传入
    return test_str[int(start):int(end)]

    env = app.jinja_env
    env.filters['mylen'] = mylen#注册自定义过滤器
    env.filters['interval'] = interval#注册自定义过滤器

    @app.route("/")
    def index():
    test_str = "hello"
    return render_template("index.html", test_str=test_str)

    if __name__ == "__main__":
    manager.run()
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    index.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>jinjia2模板测试</title>
    </head>
    <body>
    <h1>len: {{test_str|mylen}}</h1>
    <h1>interval: {{test_str|interval(0,2)}}</h1>

    </body>
    </html>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    结果
    len: 5

    interval: he
    ---------------------
    作者:guoqianqian5812
    来源:CSDN
    原文:https://blog.csdn.net/guoqianqian5812/article/details/72822029
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    POJ 2947:Widget Factory 求同余方程
    高斯消元几道入门题总结POJ1222&&POJ1681&&POJ1830&&POJ2065&&POJ3185
    POJ 1166:The Clocks
    神经网络 --学习之路,资料汇编
    机器学习 入门资料汇编
    无符号 coredump调试
    CentOS 6.3 升级软件 gcc等,并安装部署DNN环境 (未完成,不完整)
    OpenCL size_t error
    Nervanasys --> pycuda --> installation
    tmux.conf
  • 原文地址:https://www.cnblogs.com/ExMan/p/9843565.html
Copyright © 2020-2023  润新知