python - DJANGO:无法列出位于我的 django 项目中静态目录中的文件夹的内容
问题描述
在我的项目中,我在包含其他 2 个文件夹的静态文件夹中有一个文件夹datasets。我想列出每个文件夹的内容并在 HttpResponse 中返回。我在 utils/data.py 中定义了一个实用函数list_dir_content,其中我通过传递这些文件夹的路径来使用 glob.glob() 函数,但我收到一个空结果:来自 glob.glob() 函数的空列表 []。无论操作系统如何,我如何解决这个问题(我正在 ubuntu 或 Windows 10 上开发我的实习项目)。谢谢!这是我的项目的结构和文件views.py,models.py 你还可以看到调用实用程序函数list_dir_content的代码
#in views.py
def server_uts_datasets(request):
if request.method == 'GET':
uts_datasets = Dataset.get_uts_datasets()
uts_datasets_serializer = DatasetSerializer(uts_datasets, many=True)
print(uts_datasets)
return JsonResponse(uts_datasets_serializer.data, safe=False)
#in models.py
@classmethod
def get_mts_datasets(cls):
mts_datasets_files = data.list_dir_content(settings.DATASETS_DIR)
mts_datasets = []
for mts_datasets_file in mts_datasets_files:
dataset_type = 'mts'
dataset_path = mts_datasets_file
dataset_name = data.get_dataset_name(mts_datasets_file)
dataset_nb_instances = data.get_nb_instances(mts_datasets_file)
mts_dataset = Dataset(dataset_path = dataset_path, dataset_name = dataset_name, dataset_nb_instances = dataset_nb_instances, dataset_type = dataset_type)
mts_datasets.append(mts_dataset)
return mts_datasets
#in data.py
import glob
import os
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def list_dir_content(dir_path, file_extension=''):
files_pattern = dir_path + '/*.' + file_extension
print("files_pattern : ", files_pattern)
#files_results_paths = glob.glob(files_pattern)
files_results_paths = glob.glob('../tsanalysisapp/static/tsanalysisapp/datasets/uts/*.')
print("files_results_paths : ", files_results_paths)
return files_results_paths
#in settings.py
MTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp/static/tsanalysisapp/datasets/mts') # paths to datasets in tne server
UTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp/static/tsanalysisapp/datasets/uts') # paths to datasets in tne server
在此先感谢您的帮助... 我的 django 项目的结构
解决方案
只需在os.path.join()函数中将所有斜杠/替换为', '会导致os.path.join('parent_dir_name', 'subdir_name', ..., 'last_dir_name', ''):
MTS_DATASETS_DIR = os.path.join(BASE_DIR, 'tsanalysisapp', 'static', 'tsanalysisapp', 'datasets', 'mts', '*.')
推荐阅读
- amazon-web-services - 带有 EC2 和 Fargate 实例的 AWS 混合集群
- firebase - Flutter 2 - firebase_remote_config 0.6.0 & firebase_core ^0.7.0 版本冲突
- node.js - 如何引用多个模型 mongoose mongodb
- speech-recognition - Python 中的 Google 语音识别 API
- c++ - c++程序从用户输入一个句子并计算句子中单词和字符的数量
- reactjs - ReactJs formik 和 EmailJs 集成
- postgresql - 无法启用 pg_stat_statements 以启用 Heroku pg:outliers
- javascript - Nuxt.js - 全局导入自定义 NPM 包
- html - 在重用 html 组件时,是否可以将该组件的 css 和 bootstrap(cdns) 设置为该组件,并且不要让它干扰其他页面;
- python - 将 Python 代码块转换为一行