欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

制作一個& ltul & gt可折疊的項目列表

李中冰2年前8瀏覽0評論

我正在使用python和Flask、Bootstrap和JavaScript創建一個web應用程序。我有一個鄰接表,由flask_sqlalchemy的應用程序訪問。我已經能夠從數據庫中提取數據,并將鄰接表轉換為Python字典列表,下面是結果列表的一個示例:

[{'id': 1, 'name': 'External sector', 'parent_id': 0},
 {'id': 3, 'name': 'Capital and financial markets', 'parent_id': 0},
 {'id': 77, 'name': 'Credit indicators', 'parent_id': 0},
 {'id': 15, 'name': 'Economic activity', 'parent_id': 0},
 {'id': 17, 'name': 'Monetary indicators', 'parent_id': 0},
 {'id': 30, 'name': 'Regional economy', 'parent_id': 0},
 {'id': 114, 'name': 'International economy', 'parent_id': 0},
 {'id': 157, 'name': 'National private financial system', 'parent_id': 0},
 {'id': 176, 'name': 'Financial Stability', 'parent_id': 0},
 {'id': 222, 'name': 'Financial Inclusion', 'parent_id': 0},
 {'id': 2, 'name': 'Exchange rates', 'parent_id': 1},
 {'id': 242, 'name': 'Controlled or free rates', 'parent_id': 2},
 {'id': 243, 'name': 'Floating rates', 'parent_id': 2},
 {'id': 244, 'name': 'Enabled series', 'parent_id': 3},
 {'id': 4, 'name': 'Financial market indicators', 'parent_id': 3},
 {'id': 245, 'name': 'Interest rate', 'parent_id': 4},
 {'id': 5, 'name': 'Time deposits', 'parent_id': 3},
 {'id': 6, 'name': '(CDB/RDB)', 'parent_id': 5},
 {'id': 246, 'name': 'Time deposits referred in preset rates', 'parent_id': 6},
 {'id': 247,
  'name': 'Time deposits referred in postset rates',
  'parent_id': 6},
...

函數:這個函數將列表中的條目轉換成一個html格式的列表

output = ''

#NOTE: the node variable was defined earlier and it is the list representing the adjacency list.

def build_node(node):
    global output
    output += '<li><a>'+node['name']+'</a>'
    build_nodes(node['id'])
    output += '</li>'

def build_nodes(node_parent_id):
    global output
    subnodes = [node for node in nodes if node['parent_id'] == node_parent_id]
    if len(subnodes) > 0 : 
        output += '<ul>'
        [build_node(subnode) for subnode in subnodes]
        output += '</ul>'

build_nodes(0) # Pass in None as a parent id to start with top level nodes

print(output)

代碼輸出工作得很完美(你可以在這個pastebin https://pastebin . com/ESX C1 Cr中找到輸出)。

如何使用Bootstrap使這個輸出可折疊?我試過把class = & quot可折疊& quot在& lta & gt& lt/a & gt;標簽,但這不起作用。

注意:我也可以從數據庫中提取信息到一個嵌套的dixt格式,它是這樣的:

{'id': 0,
 'name': 'Root node',
 'parent_id': 0,
 'sub': [{'id': 1,
          'name': 'External sector',
          'parent_id': 0,
          'sub': [{'id': 2,
                   'name': 'Exchange rates',
                   'parent_id': 1,
                   'sub': [{'id': 242,
                            'name': 'Controlled or free rates',
                            'parent_id': 2,
                            'sub': []},
                           {'id': 243,
                            'name': 'Floating rates',
                            'parent_id': 2,
                            'sub': []},
                           {'id': 532,
                            'name': 'Real and effective exchange rate indices',
                            'parent_id': 2,
                            'sub': []},
                           {'id': 533,
                            'name': 'Foreign exchange and wage indicators',
                            'parent_id': 2,
                            'sub': []},
                           {'id': 548,
                            'name': 'Average of period',
                            'parent_id': 2,
                            'sub': []},
                           {'id': 549,
                            'name': 'End of period',
                            'parent_id': 2,
                            'sub': []}]},
                  {'id': 353,

我試圖用Flask將這個dict作為JSON字符串傳遞到我的頁面,并使用bootstrap-treeview構建樹,但是沒有成功。