模板可以将已经写好的html、css、js展示在页面,你只需要往里面填充要展示的内容即可
导入:from flask import render_template
def index(): # 视图函数 return render_template('index.html') # 加载并渲染模板
现在模板的内容是写死的,这肯定满足不了咱们,我们希望把后台返回的内容渲染在到模板上。Flass使用 Jinja2这个模板引擎来渲染模板。
我们先把pycharm里的模板语言改成Jinja2
我们在后台模拟一些数据,返回给模板渲染,render_template函数第二个参数就是我们要返回的内容
def index(): # 视图函数
ctx = {
"name": '老王',
"age": 12,
"hobby": ["下棋", '电影'],
"test": {"a": 1, "b": 2}
}
return render_template('index.html', **ctx) # 加载并渲染模板
# 下面这种也可以
# return render_template('index.html', name='laowang', age=12, hobby=["下棋", '电影'], test={"a": 1, "b": 2}) # 加载并渲染模板
常用过滤器
过滤器支撑链式调用:
{{"hello world"|reverse|upper}}
语句块操作:
{%filterupper%}'abc'{%endfilter%}
禁用转义:{{ '<em>hello</em>' | safe }}
删除标签:{{ '<em>hello</em>' | striptags }}
首字母大写:{{ 'hello' | capitalize }}
所有值小写:{{ 'HELLO' | lower }}
首字母大写:{{ 'hello world' | title }}
字符串反转:{{ 'hello' | reverse }}
字符串截断:{{ 'hello world' | truncate(5) }}
获取列表长度:{{ [1,2,3,4,5,6] | length }}
列表求和:{{ [1,2,3,4,5,6] | sum }}
列表排序:{{ [6,2,3,1,5,4] | sort }}
自定义过滤器
# 自定义过滤器def handletime(time): return time.strftime('%Y-%m-%d %H:%M')app.jinja_env.filters['handletime'] = handletime # 注册过滤器
自定义过滤器
{{ time|handletime }}
网友评论