视图调用模板

在前一节课创建项目的时候已经讲过,模板目录的位置,下面我们来讲如何使用模板。

首先我们在项目目录下创建一个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)

将上下文参数写成字典,传参时先解包。

Iyoyo电子书 一本集作者多年开发经验的python电子书 all right reserved,powered by Gitbook文件修订时间: 2022年 17:14:23