Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Django视图中浏览本地目录和文件_Python_Django - Fatal编程技术网

Python 在Django视图中浏览本地目录和文件

Python 在Django视图中浏览本地目录和文件,python,django,Python,Django,我正在开发一个Django项目,我有以下“问题”。 我有一个有子目录的本地目录,其中有一些PDF文件。例如: 总导演: |-->2000 ____|-->A ________|-->file1.pdf ________|-->file2.pdf ____|-->B ________|-->file3.pdf ____|-->C ________|-->... ____|-->D ________|-->... |-->2001 _

我正在开发一个Django项目,我有以下“问题”。 我有一个有子目录的本地目录,其中有一些PDF文件。例如:

总导演:

|-->2000
____|-->A
________|-->file1.pdf
________|-->file2.pdf
____|-->B
________|-->file3.pdf
____|-->C
________|-->...
____|-->D
________|-->...
|-->2001
___|--> ...
|-->2002
___|--> ...
所有文件夹都包含数千个PDF文件

我想在Django视图中显示这个目录,让用户通过单击子目录和PDF文件来浏览它,这样他就可以在浏览器中查看它们,甚至可以添加一个“下载PDF”按钮。我还想把它格式化一点,如果可能的话,将来可能还会增加一个搜索功能

这是我第一次使用本地文件和Django,所以我有点迷路了


谢谢你抽出时间

您可以像这样使用ListView

class FileObject():

    name = ''

    def __init__(self, name):
        self.name = name

class DirListView(ListView):

    template_name = 'main/list_dir.html'

    def get_queryset(self):
        files = []
        for filename in os.listdir(path):
            fileobject = FileObject(name=filename)
            files.append(fileobject)
        return files

此ListView可以像任何其他ListView一样使用。不确定路径的权限和位置。这一定是被settings.py窃取的。我想这有点宽泛了。你需要展示你已经尝试过的和没有成功的。删除了完全不相关的“pdf”和“web部署”标签…老实说,我没有做太多尝试。我仍在计划如何使这项工作,我想我会使用一些帮助来做它的正确方式,因为我是一个完全的业余爱好者。我正在考虑使用os.listdir方法获取目录,并通过将结果显示到模板中来移动目录,然后使目录“可点击”并移动到更深的位置等。感谢您的想法,我将尝试一下,看起来非常简单可行!我很快会带着结果回来:D