Flask 入门教程:Jinja2模板用法

Jinja2模板引擎简介

模板

在前面的示例中,视图函数的主要作用是生成请求的响应,这是最简单的请求。实际上,视图函数有两个作用:处理业务逻辑和返回响应内容。在大型应用中,把业务逻辑和表现内容放在一起,会增加代码的复杂度和维护成本。本节学到的模板,它的作用即是承担视图函数的另一个作用,即返回响应内容。

  • 模板其实是一个包含响应文本的文件,其中用占位符(变量)表示动态部分,告诉模板引擎其具体的值需要从使用的数据中获取
  • 使用真实值替换变量,再返回最终得到的字符串,这个过程称为“渲染”
  • Flask是使用 Jinja2 这个模板引擎来渲染模板

使用模板的好处:

  • 视图函数只负责业务逻辑和数据处理(业务逻辑方面)
  • 而模板则取到视图函数的数据结果进行展示(视图展示方面)
  • 代码结构清晰,耦合度低

渲染模版函数

  • Flask提供的 render_template 函数封装了该模板引擎
  • render_template 函数的第一个参数是模板的文件名,后面的参数都是键值对,表示模板中变量对应的真实值。
模版使用

{ {}} 来表示变量名,这种 { {}} 语法叫做变量代码块

<h1>{
  { post.title }}</h1>

代码中传入字符串,列表,字典到模板中

@app.route('/')
def index():
    name = '长弓'
    data = {
   
        'key':'python讲师',
        'array':[1,2,3,4,5],

        'dicts':{
   
            'name':'老王',
            'age':12
        },

        "info": [{
   
            'name': '王昭君',
            'age': 18
        }, {
   
            'name': '小鲁班',
            'age': 8
        }]
    }
    user = '貂蝉'

    return render_template('index.html',name=name,data=data,user=user)

模板中代码

<!-- 普通取值 -->
<h1>{
  { name }}</h1>
<!-- 列表取值 -->
<p>{
  { data.array }}</p>
<p>{
  { data.array.0 }}</p>
<p>{
  { data.array[1] }}</p>
<!-- 字典取值 -->
<p>{
  { data.dicts }}</p>
<p>{
  { data.dicts['name'] }}</p>
<!-- 列表套字典取值 -->
<p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多鱼的夏天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值