模板的使用
一.Jinja2模板语法
- 获取变量值:
<h1>整数:{ {number} }</h1>
<h1>元祖:{ {tuple[0]} }</h1>
<h1>列表:{ { list[0] } }</h1>
<h1>字典:{ { dict['key'] } }</h1>
- 分支语句if
{ % if 条件 % }
语句1
{ % else % }
语句2
{ % endif % }
- for循环
{% for 变量 in 容器 %}
语句
{% endfor%}
- 注释
{# 注释内容 #}
二.代码展示
- 使用函数: render_template('模板文件名',key=value)
- 将数据携带到,文件中进行展示
- 创建文件demo01.py,代码如下:
from flask import Flask,render_template
app = Flask(__name__) #默认省略了三个参数,static_url_path, static_folder, template_folders
@app.route('/')
def hello_world():
#定义数据,整数,字符串,元祖,列表,字典
num = 10
str = "hello"
tuple = (1,2,3,4)
list = [5,6,7,8]
dict = {
"name":"张三",
"age":13
}
return render_template('file01.html',my_num=num,my_str=str,my_tuple=tuple,my_list=list,my_dict=dict)
if __name__ == '__main__':
app.run(debug=True)
- 在templates文件夹下,创建文件file01.html文件,代码如下:
<h2>1.获取各种变量的值</h2>
<h3>整数: {{ my_num + 20}}</h3>
<h3>字符串: {{ my_str + " python" }}</h3>
<h3>元组: {{ my_tuple }}, 分开获取:{{ my_tuple[0] }}, {{ my_tuple[1] }}</h3>
<h3>列表: {{ my_list }}, 分开获取:{{ my_list[0] }}, {{ my_list[1] }}</h3>
<h3>字典: {{ my_dict }},分开获取:{{ my_dict.name }}, {{ my_dict[age] }}</h3>
<h2>2.遍历元祖中所有的元素</h2>
{% for item in my_tuple %}
<li>{{ item }}</li>
{% endfor %}
<h2>3.取出列表中所有偶数</h2>
{% for item in my_list %}
{% if item %2 == 0 %}
{{ item }}
{% endif %}
{% endfor %}
<h2>4.遍历字典内容</h2>
{% for key in my_dict %}
{# 如果直接是mydict.key ,那么这个key是一个字符串, 如果是 mydict[key], 那么key当成变量 #}
<li>{{ key }} = {{ my_dict[key] }}</li>
{% endfor %}
扩展:
在一个 for 循环块中你可以访问这些特殊的变量:
变量 | 描述 |
---|---|
loop.index | 当前循环迭代的次数(从 1 开始) |
loop.index0 | 当前循环迭代的次数(从 0 开始) |
loop.revindex | 到循环结束需要迭代的次数(从 1 开始) |
loop.revindex0 | 到循环结束需要迭代的次数(从 0 开始) |
loop.first | 如果是第一次迭代,为 True 。 |
loop.last | 如果是最后一次迭代,为 True 。 |
loop.length | 序列中的项目数。 |
loop.cycle | 在一串序列间期取值的辅助函数。见下面示例程序。 |