视图调用模板
在前一节课创建项目的时候已经讲过,模板目录的位置,下面我们来讲如何使用模板。
首先我们在项目目录下创建一个templates目录统一管理模板文件。
在视图中使用 render_templates 函数调用模板文件。
在templates目录下创建一个模板文件index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>首页</title>
</head>
<body>
<h1>首页</h1>
</body>
</html>
render_templates 调用模板:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
# 视图中调用模板
return render_template('index.html')
模板上下文
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
# render_template 函数第一个参数是模板名称,后面的参数以key=value的形式,传给模板的变量
return render_template('index.html', name='python', age=26)
if __name__ == '__main__':
app.run(debug=True)
注意:jinja2上下文传递,跟django中的是有区别的,django模板可以接收一个字典作为上下文,但是jinja2中只能以 key=value 的形式传递。
解决办法:
@app.route('/')
def index():
context = {'name': 'python',
'age': 26}
# 将上下文定义成一个字典,在传递上下文的时候,先将其解包
return render_template('index.html', **context)
将上下文参数写成字典,传参时先解包。