Flask 框架学习_4(Jinja模板引入+模板传参)

本文详细介绍了Flask框架中的模板使用,包括模板的引入、模板传参的多种方式,如直接传参、字典传参、嵌套字典和列表的取值方法,强调了模板引擎的安全性和组织结构的重要性。
摘要由CSDN通过智能技术生成

flask 模板简介

模板是包含静态数据以及动态数据占位符的文件。使用特定数据呈现模板以生成最终文档。Flask 使用Jinja模板库来渲染模板。

在您的应用程序中,您将使用模板来呈现将显示在用户浏览器中的HTML 。
在 Flask 中,Jinja 被配置为自动转义HTML 模板中呈现的任何数据。这意味着呈现给用户输入是安全的;他们输入的任何可能与 HTML 混淆的字符,例如输入<并且>将使用在浏览器中看起来相同(不会被转译为html代码), 不会造成不良影响的安全值进行转义

示例: 一段html代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML基础</title>
</head>

<body>
    <h1>我是标题</h1>
    <hr>
    <dl>
        <dt>历史</dt>
        <dd>秦汉</dd>
        <dd>隋唐</dd>
    </dl>
</body>

</html>

直接运行上面代码显示如下:
在这里插入图片描述

  • 现在我们调用函数返回
from flask import Flask

app = Flask(__name__)


@app.route('/')
def index():
    return """
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML基础</title>
</head>

<body>
    <h1>我是标题</h1>
    <hr>
    <dl>
        <dt>历史</dt>
        <dd>秦汉</dd>
        <dd>隋唐</dd>
    </dl>
</body>

</html>
"""


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

可以看到前端是可以正常解析html的,但是代码看起来很臃肿,不利于前后端分离,给程序的开发带来了很大的影响。

解决办法:
在程序开发过程中我们应该将html代码剥离出来,通常我们会将代码放到templates目录中,在通过render_template()方法来渲染模板。

示例:
在项目目录下创建templates目录,templates目录下创建index.html
在这里插入图片描述
index.html文件中写入:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HTML基础</title>
</head>

<body>
    <h1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值