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

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。