3.1.1、渲染模板

默认情况下,Flask 在程序文件夹中的 templates 子文件夹中寻找模板。在下一个 hello.py版本中,要把前面定义的模板保存在 templates 文件夹中,并分别命名为 index.html 和 user.html。

程序中的视图函数需要修改一下,以便渲染这些模板。修改方法参见示例 3-3。

示例 3-3 hello.py:渲染模板

from flask import Flask, render_template

 

# ...

 

@app.route('/')

def index():

    return render_template('index.html')

 

@app.route('/user/<name>')

def user(name):

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

 

###完整代码示例###

#!/usr/bin/env python

#_*_ coding:utf-8 _*_

 

from flask import Flask

from flask import render_template

 

app = Flask(__name__)

 

@app.route("/")

def index():

return render_template("index.html")

 

@app.route("/user/<name>")

def user(name):

return render_template("user.html",name=name)

 

 if __name__ == '__main__':

app.run(debug=True)

###

    Flask 提供的 render_template 函数把 Jinja2 模板引擎集成到了程序中。render_template 函数的第一个参数是模板的文件名。随后的参数都是键值对,表示模板中变量对应的真实值。在这段代码中,第二个模板收到一个名为 name 的变量。

    前例中的 name=name 是关键字参数,这类关键字参数很常见,但如果你不熟悉它们的话,可能会觉得迷惑且难以理解。左边的“name”表示参数名,就是模板中使用的占位符;右边的“name”是当前作用域中的变量,表示同名参数的值。

 

posted @   哈喽哈喽111111  阅读(290)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示