如何显示烧瓶中数据库的链接数据?

问题描述 投票:0回答:1

我的数据库中有一个包含链接列表的表。

ID | page | prior | next
1  | A    | 0     | 2
2  | B    | 1     | 3
3  | C    | 2     | 4
4  | D    | 3     | 5
5  | E    | 4     | 0

如何显示此表中的所有项目?几次位置交换和插入后,SORT BY将不起作用。我正在使用Flask,它使用Jinja2模板。我当前的方法是找到第一个项目并将其添加到列表中。然后,根据上一项的“下一个”值,收集下一行并将其添加到列表中。]

num_rows = Pages.query.count()

# find first row, the one where prior is 0
first_row = Pages.query.filter_by(prior=0).first()

# create a list containing just the first row for now
all_rows = [first_row, ]

# add new rows to the list
for i in range(0, (num_rows-1)):
    current_row = all_rows[i].next
    all_rows.append(Pages.query.get(current_row))

最后,我将列表传递给render_template('template.html', all_rows = all_rows),然后在模板中检索它。

当然还有更优雅的方法吗?我想这会执行得很糟糕,需要大量资源?

我的数据库中有一个包含链接列表的表。 ID |页面先前下1个| A | 0 | 2 2 | B | 1 | 3 3 | C | 2 | 4 4 | D | 3 | 5 5 | E | 4 | 0怎么做...

database flask sqlalchemy linked-list doubly-linked-list
1个回答
1
投票

取决于您使用的是哪种DBMS。 Oracle具有专有的CONNECT BY PRIOR语法,非常易于阅读。许多其他语言的WITH语法较难理解,但可以实现相同的结果。

© www.soinside.com 2019 - 2024. All rights reserved.