本文共 3896 字,大约阅读时间需要 12 分钟。
目录
Jinja2模板中的过滤器起到一个简单的渲染作用,它可以把接收到的数据经过简单的处理重新显示。
在HTML模板中的可变参数后,添加管道符和过滤器名字即可完成添加过滤器。例如下面的HTML代码,可变参数name后有一个capitalize过滤器。(⚠️注意:过滤器名称是不能自定义的)capitalize过滤器可以将接收的字符串首字母变为大写,其余字母变为小写。
{
{name | capitalize}}
HTML代码:
这里使用了两个过滤器capitalize和upper。upper过滤器的作用是将所有字母转换成大写。capitalize过滤器的作用是将首字母大写,其余字母转换成小写。
show Jinja2 filter {
{name | capitalize}}{
{name2 | upper}}
Python脚本:
分别向模板中定义的两个参数name和name2传入一个相同的字符串。
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "Python is FUN." return flask.render_template("filter.html", name=name, name2=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
可以看出过滤器对字符串显示重新做了修改和调整。
safe过滤器在渲染时不转义,即一个没有任何效果作用的过滤器。
HTML代码:
show Jinja2 filter {
{name | safe}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "Python is FUN." return flask.render_template("filter.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
capitalize过滤器将字符串的首字母大写,其余字母转换成小写。如果字符串的首字母是非英文字母,则不进行首字母大小写转换,仅仅将字符串中其他英文字母转换成小写。
HTML代码:
show Jinja2 filter {
{name | capitalize}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "@python is FUN." return flask.render_template("filter.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
将字符串中的英文字母转换成小写。
HTML模板:
show Jinja2 filter {
{name | lower}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "@python is FUN." return flask.render_template("filter.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
将字符串中的英文字母转换成大写。
HTML模板:
show Jinja2 filter {
{name | upper}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "@python is FUN." return flask.render_template("filter.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
将字符串中的每个单词的首字母大写,并将单词的其他字母变成小写。
HTML模板:
show Jinja2 filter {
{name | title}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = "@python is FUN." return flask.render_template("show.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
trim去掉字符串的前后空格。
HTML模板:
show Jinja2 filter {
{name | trim}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@ app.route("/")def index(): name = " @python is FUN. " return flask.render_template("show.html", name=name)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
striptags去掉字符串中所有的HTML标签。
HTML模板:
show Jinja2 filter {
{name | striptags}}
Python脚本:
import flaskimport webbrowserapp = flask.Flask(__name__)@app.route("/")def index(): name = "python is FUN.
" param = { "name": name } return flask.render_template("show.html", **param)if __name__ == '__main__': webbrowser.open("http://127.0.0.1:8890") app.run(host="0.0.0.0", port="8890")
运行结果:
转载地址:http://yfsoi.baihongyu.com/