在第一个flask程序中,使用了自己写的html作为渲染模板,本博客使用Jinja2模板引擎来渲染模板。
在Flask框架中,我们通常使用render_template()方法来渲染模板,其语法格式为:
render_template(模板名,key=value,key=value)
-
由于render_template()默认是从templates文件夹中获取模板文件,所以我们一般都是把模板文件放在templates文件中;
-
key的值是任意的,value的值是变量名,通常,模板中使用的变量名和传送数据的变量名保持一致。
1.传入网址
把视图函数中的url_str变量传入index.html文件中,我们需要在函数中这么写。
def index():
url_str='www.itcast.com'
return render_template('index.html',url_str=url_str)
完整代码:
from flask import Flask, render_template
app=Flask(__name__)
@app.route('/')
def index():
url_str='www.itcast.com'
return render_template('temp.html',url_str=url_str)
if __name__ == '__main__':
app.run()
模板文件中这样接收变量名即可
{{ 变量名key }}
完整代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>flask学习</title>
</head>
<body>
<div>模板信息展示</div>
<p>
{#这是注释#}
url是:{{ url_str }}
</p>
</body>
</html>
显示结果:
2.传入列表数据
视图函数:
@app.route('/')
def index():
list_str = [1, 2, 3, 4, 5]
return render_template('temp.html',list_str=list_str)
模板网页:
<p>
{#这是注释#}
列表是:{{ list_str }}</br>
第一个数据是:{{list_str.0}}</br>
第二个数据是:{{list_str[1]}}</br>
第一个数据加10:{{list_str.0+10}}</br>
第一个数据加第二个数据:{{list_str.0+list_str[1]}}</br>
</p>
结果展示:
3.传入字典数据
视图函数:
@app.route('/')
def index():
my_dict={
'name':'LarsGyon',
'url':'https://blog.csdn.net/LarsGyonX?type=blog'
}
return render_template('temp.html',my_dict=my_dict)
模板网页:
<p>
{#这是注释#}
字典是:{{ my_dict }}</br>
名字是:{{my_dict.name}}</br>
网址是:{{my_dict['url']}}</br>
</p>
结果展示: