需求
利用flask开一个web-app,其功能是:在网页上罗列出一指定根文件夹中的文件或子文件夹。当用户点击文件链接后,可下载至本地;当用户点击子文件夹时,在网页上罗列出该子文件夹中的文件。
注意:这里的文件夹结构是已知的有限的。比如最多只有两级子目录。
此实例中的目录结构如下:在根目录root_dir
下有一级子目录。目录结构图如下:
├─root_dir
│ │ file1.txt
│ │ file2.txt
│ │ file3.txt
│ │ GAN.docx
│ │ main.py
│ │ tmp.md
│ │
│ ├─sub_dir1
│ │ file4.txt
│ │ file5.txt
│ │ tmp.md
│ │
│ └─sub_dir2
│ file6.txt
│ file7.txt
│ tmp.md
实现
目前的实现思路是针对每一级子目录,分别创建一个url绑定函数,以及创建一个函数用于下载文件。比如sub_dir1_page()
用于返回第一级子目录的文件列表,download_subdir1()
用于返回第一级子目录中要下载的文件。
因为此实例是演示作用,只有一级子目录,因此只需要多写一个sub_dir1_page()
和download_subdir1()
即可。若是两级子目录,则要类似的再写一个sub_dir2_page()
和download_subdir2()
。若是N级子目录,则要多写N组对应的函数。可见这种方式是比较笨拙的。更