Flask中提供了视图模板,将业务逻辑与表现逻辑分离,符合人们开发中的习惯,也利于维护。
这里先学习如何渲染模板,之后向模板中传递动态数据。
Flask提供了render_template函数,使用它首先要引入:from flask import Flask, render_template,这个函数中第一个参数是模板路径文件名,后面所有参数都是向模板中传递的键值对。
页面模版中的数据部分在路由返回模板时,使用键值对传递,如我们定义一个这样的方法:
@app.route('/')
def index():
return render_template('/index.html', name='zhangsan')
页面模板中使用{{ }}接收,{{ }}表示包裹的是一些数据变量,上面方法对应的接收方式为:
<a>{{ name }}</a>
我们通常会传递一组数据,例如我们传递一个数组:
@app.route('/')
def index():
num = ['tom', 'mike', 'amuxia', 'zhao', 'lisi']
return render_template('/index.html', num=num)
模板中如何把他遍历出来:
<ul>
{% for name in num %}
<li>{{ name }}</li>
{% endfor %}
</ul>
有时遍历出来的数据我们希望在展示时做一些处理,这个时候我们可以使用JinJa2提供的过滤器进行转义
如上面的例子,我们想让遍历出来的name都是大写:
<ul>
{% for name in num %}
<li>{{ name|upper }}</li>
{% endfor %}
</ul>
常用的几个过滤器
capitalize:字符串首字母大学,其余小写。
trim:去空格。
lower:转小写。
upper:转大写。