0

在用户端,假设我有人通过表格选择学校记录以显示在下表中。

例如,他们从名字列表中选择他们的名字,然后从数据库中提取他们的记录。

根据他们的年级,他们可能有 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...

到目前为止,我一直在为每条记录创建表格单元格,但记录没有通过。有人知道怎么做吗?

4

2 回答 2

2

您是否有理由对数据进行预处理?english_records看起来像什么?如果我的预感是正确的,那么您实际上根本不需要for循环。

还有一个问题是您在for 循环english_records中用覆盖初始变量english_records,因此赋值虽然在语法上是合法的,但在逻辑上是荒谬的。

另一个问题是,根据 first 的实际类型english_records,您不需要使用计数器:如果english_records是 a list,那么它将包含您要查找的值。如果english_records是 a dict,那么枚举它可能看起来像for key, val in english_records.iteritems()

于 2013-02-20T08:35:48.807 回答
0
 for e in english_records:
        english_records = [
            { 
                'english': english_records[i]
            }
        ]
        i = i + 1

这里的循环是创建一个 list ,但是这些 list 的成员没有 'english' key ,所以在模板中,循环被执行,但没有值 for {{record.english}},因此它被忽略了。您将得到的只是没有任何数据的表格行。

于 2013-02-20T08:31:37.300 回答