在用户端,说我有人通过表格选择学校记录,以显示在下表中。
例如,他们从名单中选择他们的名字,并从数据库中提取他们的记录。
根据他们的课程年份,他们可能有1年,2年,3年或4年的记录,因此提取的数据总是看起来不同。
提交表单后,他们的记录存储在包含所有记录的变量中,然后将每个记录分解为子类型,例如,英语部门中的所有记录。这些子类型存储在其他列表中 - 因此所有英文记录都有一个列表。我们称之为变量english_records。我想使用这些子类型变量只能呈现用户想要查看的数据,并呈现该特定列表中的所有数据。
因此,使用Flask的render_template函数,我正在尝试将每个记录发送到一个html模板,该模板将为每条记录创建一个表格单元格。
我一直在尝试(到目前为止还没有工作)是这样的:
的Python:
i = 0
def index():
for e in english_records:
english_records = [
{
'english': english_records[i]
}
]
i = i + 1
return render_template("index.html",
english_records = english_records)
在HTML中:
...table above...
{% for record in english_records %}
<td>
{{record.english}}
</td>
{% endfor %}
...table continues...
到目前为止,我一直在为每条记录创建表格单元格,但记录没有通过。有谁知道怎么做?
答案 0 :(得分:2)
您是否有预先处理数据的原因? english_records
看起来像什么?如果我的预感是正确的,那么你实际上根本不需要for
循环。
还有一个问题是你在for循环中用english_records
覆盖了初始的english_records
变量,所以赋值虽然在语法方面是合法的,但在逻辑上是荒谬的。
另一个问题是,根据第一个english_records
的实际类型,您不需要使用计数器:如果english_records
是list
,那么它将会包含您正在寻找的价值。如果english_records
是dict
,则枚举它可能看起来像for key, val in english_records.iteritems()
。
答案 1 :(得分:0)
for e in english_records:
english_records = [
{
'english': english_records[i]
}
]
i = i + 1
这个循环在这里创建一个列表,但这些列表的成员没有'english'键,
所以在模板中,循环被执行,但{{record.english}}
没有值,因此被忽略。
你得到的只是没有任何数据的表格行。