通常情况下,我们不会像hello world一样直接在视图函数中编写返回内容,而是专门返回一个渲染过的模板。Flask使用Jinja2完成这一任务。
1.建立模板
在hello.py同目录下建立templates文件夹
然后新建一个index.html,内容如下:
<h1> Hello World! </h1>
新建一个user.html,内容如下:
<h1>Hello {{ name1 }}! </h1>
2. 渲染模板
hello.py的文件更新如下
from flask import Flask, render_template #新增导入模块
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html') #渲染模板
@app.route('/user/<name2>')
def uesr(name2):
return render_template('user.html',name1=name2) #注意参数name,为避免混淆加了数字尾缀。
if __name__ == '__main__':
app.run()
3.模板中的变量
Jinja2能识别所有类型的变量,例如
- {{ mydict['key'] }} 字典
- {{ mylist[3] }} 列表
- {{ myobj.somemethod() }} 方法
- {{ name }} 普通变量
此外还支持控制结构,宏,模板继承等,详见JInja文档
下一篇主要介绍如何创建模板。