Html 动态更新Flask中的嵌套树+;金甲2号

Html 动态更新Flask中的嵌套树+;金甲2号,html,css,flask,treeview,jinja2,Html,Css,Flask,Treeview,Jinja2,我是web应用程序开发的绝对初学者。为了给我的Python应用程序添加一个web界面,我选择了Flask。在阅读了一些手册/教程之后,我明确表示,我不能没有一些CSS/HTML和Jinja模板,我也开始学习这些模板 现在,我需要构建一个嵌套项树,可以像这样折叠/展开: 文件夹 嵌套文件夹 项目1 项目2 该树是从以下格式的词典列表中生成的: [ {'name': 'text...', 'level': 0|1|2..., 'id': DB id, 'count': number

我是web应用程序开发的绝对初学者。为了给我的Python应用程序添加一个web界面,我选择了Flask。在阅读了一些手册/教程之后,我明确表示,我不能没有一些CSS/HTML和Jinja模板,我也开始学习这些模板

现在,我需要构建一个嵌套项树,可以像这样折叠/展开:

  • 文件夹
    • 嵌套文件夹
      • 项目1
      • 项目2
该树是从以下格式的词典列表中生成的:

[ {'name': 'text...', 'level': 0|1|2..., 'id': DB id, 'count': number of children}, ... ]
该列表在Flask后端从PostgreSQL数据库中检索

现在,我当前的方法是将列表按原样传递给前端,使用Jinja继承的模板对其进行解析,如下所示:

{%extends'generic.html%}
{%block content%}
分级机
{#树视图的新CSS类}
    {#当前嵌套级别} {%set l=0%} {#在传递的变量(LIST)上迭代#} {分类器%中的项的%1} {#增加等级(嵌套)} {%if item['level']>l%} {%n在范围内(项['level']-l)%}
      {%endfor%} {#降低级别(非最高级)} {%elif项['level']{%endfor%} {%endif%} {#将项作为复选框或标签输出#} {%if项['id']==-1%}
    • {{item['name']}}[{{{item['count']}]
    • {%else%}
    • {%endif%} {%set l=项['level']%} {%endfor%}
    Датасеты {%endblock%}