flask入门教程(3) - 模板文件

模板文件

我们每个路由返回的是一个html,但是在python内部写上一堆html并不好玩,所以这时候就需要render_template来渲染模板文件,模板文件在templates文件夹中,目前目录结构为:

- templates
  - index.html
- app.py

index.html放入我们需要返回的html:

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        <p>Hello World!</p>
    </body>
</html>

app.py引入render_template函数:

# app.py
from flask import Flask, render_template

app = Flask(__name__)

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

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

加入http://127.0.0.1:5000/,我们依旧看到了那熟悉的Hello World!:
在这里插入图片描述

解析

接下来我们来看看render_template函数:

return render_template("index.html")

render_template会在templates文件夹中寻找模板文件,因此路径不需要写成templates/index.html

现在你可以任意更改html文件并查看效果。

Jinja2模板

当然这个html文件可不是简单的html文件,你可以在里面嵌入python代码和变量,这就是Jinja2模板的威力了,以下是常见的嵌入方式:

  • {% python代码 %}
  • {{ python变量 }}
  • {# 注释 #}

以下给两个例子,我相信你会理解更透彻,当然下面的这些不是全部,首先更改目录结构为:

- static
  - test.jpg
- templates
  - index.html
- app.py

index.html先使用简单的双大括号嵌入变量:

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
    </head>
    <body>
        {{ msg }}
        <img src="{{ url_for('static', filename='test.jpg') }}">
    </body>
</html>

app.py中的render_template时附带这个msg参数:

#app.py
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template("index.html", msg="Hello World!")

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

你会看到:
在这里插入图片描述
我们可以看到{{ msg }}被替换为Hello World!了,之后我们会介绍更多模板文件的用法。

下次见!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值