美文网首页
Flask的jinja2模板中自定义过滤器的使用

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

作者: yangsir001 | 来源:发表于2020-07-13 21:05 被阅读0次

    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()12345678910111213141516171819202122232425262728

    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>123456789101112

    结果

    len: 5

    interval: he

    ————————————————

    版权声明:本文为CSDN博主「guoqianqian5812」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/guoqianqian5812/java/article/details/72822029

    相关文章

      网友评论

          本文标题:Flask的jinja2模板中自定义过滤器的使用

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