前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >flask第十八篇——模板【2】

flask第十八篇——模板【2】

作者头像
孟船长
发布2018-05-21 11:05:37
5190
发布2018-05-21 11:05:37
举报

上一节我们介绍了模板的基本使用方法,现在我们想一个问题,如果把index.html放到template文件夹下面的文件夹该怎么办呢?其实很容易,当文件夹结构如下图所示时:

我们只需要修改render_template的值即可,代码如下:

如果你在pycharm里面修改,pycharm会自动帮你改应用的代码的。

现在来想另一个问题,就是既然模板可以复用,那么它里面的内容肯定不可能写死对吧,如果写成固定值那每个页面的内容都成了一样的了,所以模板就需要写成变量的形式,通过给变量传值来修改模板对应的内容。在flask中,变量的写法是{{ 变量值 }}这种两个大括号(又叫大胡须)的形式。 现在我们在主文件给一段字符串,然后想把它应用到.html模板中,我们该怎门办呢?根据render_template的源码知道它还有第二个参数——关键字参数**context,所以我们知道只需要给它传一个关键字参数即可,加上刚才的大胡须传递变量,我们来看一段代码:

templateDemo.py文件

# coding: utf-8

from flask import Flask, render_template

app = Flask(__name__)  # type: Flask
app.debug = True

@app.route('/')
def hello_world():

    title = u'首页内容'
    return render_template('post/index.html', title=title)

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

index.html文件

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>这里是title</title>
    </head>
    <body>

        <h1>{{ title }}</h1>
    
    </body>
</html>

现在来执行代码,然后去页面查看:

我们看到title的内容已经在页面上显示出来了。

这是模板引用变量的最简单的一个例子。

现在我们来渲染一个字典(就是传值为字典,专业术语叫渲染,记住了):

# coding: utf-8

from flask import Flask, render_template

app = Flask(__name__)  # type: Flask
app.debug = True

@app.route('/')
def hello_world():

    title = {"name": "Warren",
             "age": 18,
             "gender": "male"}
    
    return render_template('post/index.html', title=title)
    
if __name__ == '__main__':
    app.run()

执行代码后看到页面直接显示了字典title的内容:

如果我们现在只想取字典里name的值呢?那么我只需要修改index.html里面的内容即可: index.html文件

<!DOCTYPE html>

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>这里是title</title>

</head>
<body>

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

</body>
</html>

可以看到,取值的方式就是title.name即可。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 自动化测试实战 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档