使用 Django 在站点上显示任意嵌套文件系统 directories/file 内容

Displaying arbitrary nested filesystem directories/file contents on site using Django

我在服务器的文件系统上有一个目录结构。它可以包含任意级别的嵌套子目录,它们本身最终包含“报告”/“查询”,它们基本上只是 xml 个包含数据的文件。我想在我的网站上将此目录结构显示为嵌套的可折叠菜单列表视图,其中“报告”是菜单列表视图中的叶子,并在单击后在页面的另一个区域显示来自这些“报告”的数据.我想在每个菜单标题中显示目录名称(实际上,我已经配置了一个文件,将目录名称映射到更用户友好的显示名称)。

磁盘上的数据结构如下所示(其中类别和子类别是文件系统上的目录,查询代表我要显示其信息的文件):

我的总体问题是:

将文件系统目录结构读入 python 数据结构的最佳方法是什么,以便我最终可以使用可折叠的嵌套菜单来表示目录结构在网站上显示它。

由于数据是从文件系统收集来显示在页面请求上的,所以我不确定如何使用 django 模板(如果我应该的话)来生成这些可折叠菜单,因为 html为列表结构生成的内容在页面请求中读取,并且可以并且经常在文件系统上进行更改。我不确定如何获得静态 Django 模板来处理类似的东西。

什么是最好的 front-end 框架,它可以与 Django 很好地集成,并且最好支持嵌套菜单或百叶窗到任意深度,这样我就可以显示这些菜单并最终显示报告文件的输出?

也许我应该使用 django 模板来显示目录结构的初始顶层,并使用 ajax 来抓取下一个(以及之后的下一个)sub-level 数据,当用户试图深入到 category/directory?理想情况下,我想避免每次单击列表项时发出请求和等待响应的延迟,因此我想在将整个页面发送到客户端之前在服务器上构建它。但同样,我不确定是否可以使用 django 模板来显示这样的任意数据。

非常感谢任何建议和建议,谢谢。

PS:我想我可以通过编程方式构建 html 来显示目录结构并将其发送给客户端,但我想尽可能避免这样做。

只是一个建议,但我会考虑保留所有条目的数据库 table 及其磁盘路径、文件大小、文件名等。用计划的作业填充它。然后在 dbms 中搜索那些 paths/names.

这使您可以向用户显示更多信息,并使 django/front 端的所有内容都使用您通常期望使用的工具。

将文件系统排除在外,想想用户真正想要做什么,很可能他们不关心它是如何存储在服务器上的。