flask——模板与自定义过滤器
使用模块可以在templates新建一个html文件,如index.html文件,如基础模板分别为:程序基础模板:from flask import Flask,render_templateapp = Flask(__name__)@app.route("/")def index():data = {"name":"python",}return render_template("index.h
使用模块可以在templates新建一个html文件,如index.html文件,如基础模板分别为:
程序基础模板:
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
data = {
"name":"python",
}
return render_template("index.html",**data)
if __name__ == '__main__':
app.run(debug = True,port=8000)
index.html基础模板:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>name = {{name}}</p>
</body>
</html>
若传递的参数有列表或字典,仍可按照正常的取值方式,例如:
程序:
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
data = {
"name":"python",
"my_dict":{"itchat":"Beijing"},
"my_list":[1,2,3,4,5],
"my_int":0
}
return render_template("index.html",**data)
if __name__ == '__main__':
app.run(debug = True,port=8000)
index.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>name = {{name}}</p>
<p>my_dict:itchat = {{my_dict["itchat"]}}</p>
<p>my_dict:itchat = {{my_dict.get("itchat")}}</p>
<p>my_list:my_int = {{my_list[my_int]}}</p>
</body>
</html>
flask有着自己的过滤器模块,如下展示:
字符串过滤器:
safe:禁止转义
capitalize:把变量值的首字母转成大写,其余字母转小写
lower:把值转成小写
upper:把值转成大写
title:把值中的每个单词的首字母都转成大写
trim:把值的首尾空格去掉
reverse:字符串反转
format:格式化输出
striptags:渲染之前把值中所有的HTML标签都删掉
使用方法相对简单,例如:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>name = {{name}}</p>
<p>my_dict:itchat = {{my_dict["itchat"]}}</p>
<p>my_dict:itchat = {{my_dict.get("itchat")}}</p>
<p>my_list:my_int = {{my_list[my_int]}}</p>
<p>name = {{name | upper}}</p>
<p>my_dict:itchat = {{my_dict.get("itchat") | lower | reverse}}</p>
</body>
</html>
若flask自带的过滤器模块满足不了要求,可以使用自定义的过滤器方法
第一种方法,编写相关函数添加进过滤器模块中:
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
data = {
"name":"python",
"my_dict":{"itchat":"Beijing"},
"my_list":[1,2,3,4,5],
"my_int":0
}
return render_template("index.html",**data)
# 自定义过滤器
"""第一种方法"""
# 1.编写过滤器函数
def list_step_2(li):
return li[::2]
# 注册过滤器
"""app.template_filter第一个参数为过滤器函数,过滤器函数名字"""
app.add_template_filter(list_step_2,"li2")
if __name__ == '__main__':
app.run(debug = True,port=8000)
第二种方法,使用装饰器的方法给过滤器模块添加新功能:
from flask import Flask,render_template
app = Flask(__name__)
@app.route("/")
def index():
data = {
"name":"python",
"my_dict":{"itchat":"Beijing"},
"my_list":[1,2,3,4,5],
"my_int":0
}
return render_template("index.html",**data)
"""第二种方法"""
@app.template_filter("li3")
def list_step_3(li):
return li[::3]
if __name__ == '__main__':
app.run(debug = True,port=8000)
相应的inde.html文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>name = {{name}}</p>
<p>my_dict:itchat = {{my_dict["itchat"]}}</p>
<p>my_dict:itchat = {{my_dict.get("itchat")}}</p>
<p>my_list:my_int = {{my_list[my_int]}}</p>
<p>name = {{name | upper}}</p>
<p>my_dict:itchat = {{my_dict.get("itchat") | lower | reverse}}</p>
<p>guolvqi = {{my_list | li2}}</p>
<P>guolvqi2 = {{my_list | li3}}</P>
</body>
</html>
以上就是flask的模板与过滤器的基本使用方法,有疑问的欢迎评论或私信博主阿。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)