使用模板

目录

一、模板介绍

1.1 模板的概念

1.2 Jinja2模板引擎介绍

二、使用模板渲染页面


一、模板介绍

1.1 模板的概念

上一节我们介绍了视图函数的概念,视图函数的主要作用是生成请求的响应,我们在上一节中返回了一个硬编码的html字符串。所谓硬编码,就是我们将网页html的内容写在了视图函数中再返回给浏览器。这种方式很明显有个弊端,它不适合前、后端开发人员的协作。最好的方式应该是前端开发人员用他们自己的方法或者工具开发好网页页面,我们后端flask开发人员使用某种方式可以直接或者只需要少量改动就能够渲染它们的页面并返回给浏览器,而不是一股脑的将前端的html网页内容全部写入到视图函数中。这里我们就要使用“模板”来完成这个前后端承接功能。

使用模板_第1张图片

那么模板到底是什么?模板本质上是html网页文件,只不过在这个文件中加入了一些特殊的只有flask能识别的占位变量,flask通过这些占位变量来控制网页的运行逻辑。

在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。因此,使用模板我们就可以将前端网页设计人员和后端逻辑开发人员分离开,各自干好各自的活,最后通过模板衔接。

1.2 Jinja2模板引擎介绍

Jinja2是Python下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能,目前内置在了flask中,只要安装好flask就可以直接使用。Jinja2模板引擎到底做了什么呢?简单来说,就是可以翻译模板中的占位变量。

举个例子,假设我们开发的博客在页面上要显示用户昵称,这个昵称并不是写死的。前端开发人员在设计页面时,只会对昵称的位置、大小、样式进行设计,但他无法控制具体要显示的名字内容,这个功能很明显需要后端开发人员协助完成。后端开发人员需要从数据库中获得对应账户的昵称,然后在渲染页面时将这个昵称替换到页面的指定位置。怎么替换呢?在网页哪里替换呢?这就需要用到模板的占位变量,本质上来说就是一个标记,样式如下所示:

{
    {nickname}}

左右各由两个英文括号围成,这就是Jinja2的模板占位变量。Jinja2引擎在渲染这个页面时遇到这种占位变量就会完成替换工作,从后端取值并填入到这个占位变量处。

二、使用模板渲染页面

接下来我们使用模板来改写我们前面的页面。首先我们在当前文件夹下创建一个名为templates的子文件夹,注意这个templates文件夹不要拼错,不能起其他的名称,这个文件夹专门用于放置模板文件。然后在templates文件夹下新建一个home.html文件,文件内容编写如下:





    
    使用模板渲染页面



    

Jinja2模板

这是一段比较简单的html代码,网页标题设置为“使用模板渲染页面”,网页部分只包含一个加粗的标题“Jinja2模板”。接下来,我们就需要使用flask的模板来渲染这个网页。

修改manage.py文件,代码如下:

from flask import Flask,render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('home.html')


if __name__ == '__main__':
    app.run(debug=True)

在头部除了导入Flask类以外还需要导入render_template函数,该函数用于渲染模板。在index函数中我们使用render_template('home.html')来渲染和返回页面内容。保存修改后运行,最终呈现效果如下:

使用模板_第2张图片

你可能感兴趣的:(轻量级Python,flask2,python,博客教程,轻量级)