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
版权声明:本文为博主原创文章,转载请附上博文链接!
相关文章
- Android Studio(六):Android Studio添加注释模板
- KMP(模板)
- Thinkphp模板怎么使用自定义函数
- Android Kotlin 数据驱动模板
- OpenGL-----深度测试,剪裁测试、Alpha测试和模板测试
- select取数据库值设为默认值,TP框架模板中ifelse
- bash模板
- eclipse常用功能:代码重构(变量批量重命名)、自定义注释、代码模板、打开断言
- c++模板学习10之类模板分文件编写
- word自定义模板的存储位置
- Atitit java字符串模板渲染总结 目录 1. 总结:指标1 1.1. 支持中文变量 提升可读性1 1.2. 变量placeholder简单性,,velo可以直接¥前导简单。。Free的
- Word DocX 模板数据填充 .NET Word 报表
- 设计模式-建造者模式+模板模式=自定义用户需求
- easycode一键生成插件自定义模板
- QT单例模式(函数模板实现)
- Python编程:Django自定义模板标签
- 如何在IDEA中自定义模板、快速生成完整的代码?
- vscode自定义vue模板代码
- C++模板基本概念及语法
- 学习C++模板---模板函数
- 同向双指针模板——里面if j == n 和 sum >= s的细节要区分哪
- Flask中的session ,自定义实现 session机制, 和 flask-session组件
- Django(二)路由系统、视图、模板
- 【C++提高】单个类模板语法详解
- 【C++要笑着学】list 核心框架接口的模拟实现 | 运算符重载实现list迭代器 | 妙用模板实现const迭代器