上次讲了if语句,其实在Flask中,用法基本一样,唯一的区别就是HTML中for循环的语法格式稍微有点不同, 要以一下格式来执行for循环才有效。
{% for xx in xxx %}
{% endfor %}
想想什么时候才能用到for循环?大致就是遍历list和dict吧。就来一个list当中包含dict的例子。
代码如下:
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
books = [
'name': '飞狐外传',
'author': '金庸',
'price': 56
'name': '雪山飞狐',
'author': '金庸',
'price': 62
'name': '连城诀',
'author': '金庸',
'price': 69.5
'name': '射雕英雄传',
'author': '金庸',
'price': 72
'name': '白马啸西风',
'author': '金庸',
'price': 76.2
'name': '鹿鼎记',
'author': '金庸',
'price': 77
'name': '笑傲江湖',
'author': '金庸',
'price': 89
'name': '书剑恩仇录',
'author': '金庸',
'price': 96
'name': '神雕侠侣',
'author': '金庸',
'price': 56
'name': '侠客行',
'author': '金庸',
'price': 99
'name': '倚天屠龙记',
'author': '金庸',
'price': 109
'name': '碧血剑',
'author': '金庸',
'price': 110
'name': '鸳鸯刀',
'author': '金庸',
'price': 56.9
return render_template('index.html', books=books)
if __name__ == '__main__':
app.run(debug=True)
首先定义一个名为books的list,里面包含书名,作者和价格这三个属性和值。重点来了,HTML中,我们应该要怎么写呢?见下:
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<table>
<thead>
<th>书名</th>
<th>作者</th>
<th>价格</th>
</thead>
<tbody>
{% for book in books %}
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
{% endfor%}
</tbody>
</table>
</body>
</html>
给一个table标签,让结果以表格形式呈现到前端。
给一个thead标签,定义表格头部信息
给一个th标签,定义列名
给一个tbody标签,定义表格内容
给一个tr标签,表示行信息
给一个td标签,表示单元格内容信息
实际效果:
Flask中,HTML中的for循环格式:
{% for xx in xx %}
{% endfor %}
Flask中,HTML中的访问变量元素的属性格式: {{ xx.属性}}