一、用管道符号表示过滤器( | )
以length过滤器为例:
username=”知网”
{{ user.username | length }}返回:2
length过滤器是jinja2模板中常用内置过滤器之一,length表示返回变量的长度
二、自定义过滤器
如果jinja2模板中的过滤器无法满足我们的使用需求,我们也可以自定义过滤器。
示例:
python中代码块:
from flask import Flask,render_template
from datetime import datetime
def datetime_format(value,format="%Y-%m-%d %H:%M"):
return value.strftime(format)
app.add_template_filter(datetime_format,"dformat")
@app.route("/filter")
def filter_demo():
mytime = datetime.now()
return render_template("filter.html",mytime=mytime)
html中代码块:
<div>{{ mytime | dformat }}</div>
三、创建文件:05过滤器
复制文件:04模板访问对象属性到flask项目下重命名为:05过滤器,并开启debug模式。
from flask import Flask,render_template
from datetime import datetime
app = Flask(__name__)
def datetime_format(value,format="%Y-%m-%d %H:%M"):
return value.strftime(format)
app.add_template_filter(datetime_format,"dformat")
class User:
def __init__(self,username,email):
self.username = username
self.email = email
@app.route('/')
def hello_world():
user = User(username="知网",email="xxx@qq.com")
person = {
"username" : "张三",
"email":"zhangsan@qq.com"
}
return render_template('index.html',user=user,person=person)
@app.route("/blog/<blog_id>")
def blog_detail(blog_id):
return render_template("blog_detail.html",blog_id=blog_id,username="Mr.Qian")
@app.route("/filter")
def filter_demo():
user = User(username="知网",email="xxx@qq.com")
mytime = datetime.now()
return render_template("filter.html",user=user,mytime=mytime)
if __name__ == '__main__':
app.run()
四、创建文件:filter.html
在templates目录下创建一个新的html5文件:filter.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过滤器的使用</title>
</head>
<body>
{{ user.username }}-{{ user.username|length }}
<div>{{ mytime | dformat }}</div>
</body>
</html>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/122920.html