一、render_template()函数介绍
功能:渲染/加载模板,一般是html页面
参数:函数的第一个参数是模板的文件名,必填,后面的参数都是键值对,表示模板中变量对应的值,非必填 (不填界面也不会展示成变量名,只是不填则不渲染)。
在项目下创建 templates 文件夹,将模板放到该文件夹下,project会自动从该文件夹下取模板
举例如下:
模板:放到templates文件夹
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>Titletitle>
head>
body>
我的模板html内容
body>
html>
视图:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('hello.html')
二、怎样向模板HTML页面传递参数
如果希望向HTML页面传递参数,可以在函数中申明一个变量,然后使用render_template()函数传递过去。在render_template()函数中将视图函数中的变量赋值给HTML页面中的变量。然后通过模板渲染,就实现传值。
如下所示:
@app.route('/hello.html')
def hello_world():
args = request.args # 获取所有参数
name =args.get('name')
return render_template('hello.html',name=name)
说明:render_template()中参数名name,前面一个指的是模板HTML页面中变量名,后面一个值name指视图函数中定义的变量名,可以命名一样,也可以命名不一样,值可以是常量,也可以是变量,如:
模板:
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>Titletitle>
head>
body>
我的模板html内容
br />{{ my_str }}
br />{{ my_int }}
br />{{ my_array }}
br />{{ my_dict }}
body>
html>
视图:
@form.route('/formplay') #在蓝图对象上进行操作,路由
def index():
# 往模板中传入的数据
my_str11 = 'Hello Word22'
my_int = 10
my_array = [3, 4, 2, 1, 7, 9]
my_dict = {
'name': 'xiaoming',
'age': 18
}
return render_template('hello.html',
my_str=my_str,
my_int=my_int,
my_array=my_array,
my_dict=my_dict
)
**备注:**也可以命名不一样。如下变量my_str22为html页面中的变量名,my_str11为视图函数中定义的变量名,将视图函数中的变量赋值给HTML页面中的变量。
视图:
@form.route('/formplay') #在蓝图对象上进行操作,路由
def index():
# 往模板中传入的数据
my_str11 = 'Hello Word22'
my_int = 10
my_array = [3, 4, 2, 1, 7, 9]
my_dict = {
'name': 'xiaoming',
'age': 18
}
return render_template('hello.html',
my_str22=my_str11,
my_int=my_int,
my_array=my_array,
my_dict=my_dict
)