使用 Python 从 0 开发属于你的个人管理系统 08 篇 | 如何使用模板引擎渲染数据(上)
当你写了静态的 HTML 网页时,它没有任何交互。更多的,它只能作为一种展示,而我们通常写的网页系统,都是需要数据交互的,如何将静态的 View 层(静态页面)和在业务逻辑层得到的数据打通呢?
有一种常用的方式就是使用模板引擎,我们可以在 HTML 中定义一些模板语言(变量),而在业务逻辑中将得到的变量数据传给定义好的模板语言,这样就能让静态的网页「动」起来,也就是模板引擎渲染数据。
今天,主要给你介绍一下,Flask 中的 Jinja2 模板引擎的使用,以及那些常用到的模板语言。
接着我们上一篇的文件代码,我们创建了数据库并从中插入了数据:
from flask import Flask from flask_sqlalchemy import SQLAlchemy import config app = Flask(__name__) # 使用配置 app.config.from_object(config) # 实例化数据库对象 db = SQLAlchemy(app) # 数据模型 class Fitness(db.Model): __tablename__ = 'fitness' id = db.Column(db.Integer, primary_key=True) sport_name = db.Column(db.String(100)) calorie = db.Column(db.Float)
那么现在,如果我们想要获取数据库中的相关数据,然后将它们展示到首页中,如何操作呢?

比如要获取第二条的运动名称,展现到首页上,可能你会这样:
@app.route('/') def index(): fitness = Fitness.query.get(2) return fitness.sport_name
这样你访问首页的时候可以得到结果:

虽然这样简单粗暴可以,但是我们的页面不仅仅是获取这么一个数据,并且我们需要将数据展示到不同的地方去,这时候,我们就可以使用模板语言来定义了。
模板变量参数的使用
进入 templates 目录,创建一个 index.html 模板文件:
<html> <head> <title>{{name}}健身记录</title> </head> <body> 运动名称: {{sport_name}} ,消耗的卡路里:{{cal}} </body> </html>
我们在这里分别定义了三个变量,name,sport_name,cal
本文隐藏内容 登陆 后才可以浏览

ok,这是 Jinja2 模板引擎最常用的使用方式,你可以先熟悉熟悉,下一篇我还会给你介绍它的其它你需要了解使用方式,比如模板之间如何引用以及继承。如何使用 Jinja2 本身提供的方法等,那么我们下一篇见,peace!