上次講了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">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<table>
<thead>
<th>書名</th>
<th>作者</th>
<th>價格</th>
</thead>
<tbody>
{% for book in books %}
<tr>
<td>{{ book.name }}</td>
<td>{{ book.author }}</td>
<td>{{ book.price }}</td>
</tr>
{% endfor%}
</tbody>
</table>
</body>
</html>
- 給一個table標籤,讓結果以表格形式呈現到前端。
- 給一個thead標籤,定義表格頭部信息
- 給一個th標籤,定義列名
- 給一個tbody標籤,定義表格內容
- 給一個tr標籤,表示行信息
- 給一個td標籤,表示單元格內容信息
實際效果:
總結:
-
Flask中,HTML中的for循環格式:
{% for xx in xx %}{% endfor %}
- Flask中,HTML中的訪問變量元素的屬性格式: {{ xx.屬性}}