需求
利用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组对应的函数。可见这种方式是比较笨拙的。更灵活的方式见后续的实例。
代码如下:
from flask import Flask, send_from_directory
import os
app = Flas

本文介绍了如何使用Flask框架创建一个简单的web-app,展示指定文件夹内容,允许用户下载文件或浏览子文件夹。通过点击文件链接,文件会被下载到本地,而点击子文件夹则会展示其内容。目前实现仅支持一级子目录,但通过改进可以扩展到多级目录。文章提供了代码示例和实际运行效果截图。
最低0.47元/天 解锁文章
2014





