如果不用模板主页返回一个简单的HTML页面
# app/routes.py
from app import app
@app.route('/')
@app.route('/index')
def index():
user = {'username': 'Idu'}
return '''
<html>
<head>
<title>Home Page - IduBlog</title>
</head>
<body>
<h1>Hello, '''+ user['username']+ '''!</h1>
</body>
</html>'''
使用模板
创建目录app/templates
创建第一个模板文件app/templates/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{title}} - Idu</title>
</head>
<body>
<h1>Hello, {{ user.username }} </h1>
</body>
</html>
在routes.py中使用该模板文件
from app import app
from flask import render_template
@app.route('/')
@app.route('/index')
def index():
user = {'username': 'Idu'}
return render_template('index.html', title='Home', user=user)
运行应用
...
END
将模板转换为完整的HTML页面的操作称为渲染。 为了渲染模板,需要从Flask框架中导入一个名为render_template()的函数。 该函数需要传入模板文件名和模板参数的变量列表,并返回模板中所有占位符都用实际变量值替换后的字符串结果。
render_template()函数调用Flask框架原生依赖的Jinja2模板引擎。 Jinja2用render_template()函数传入的参数中的相应值替换{{...}}块。