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 @ 2017-03-29 18:23  哈喽哈喽111111  阅读(289)  评论(0编辑  收藏  举报