DJANGO: Невозможно отобразить содержимое папки, расположенной в каталоге stati c в моем проекте django - PullRequest
0 голосов
/ 27 января 2020

В моем проекте у меня есть папка наборов данных в папке stati c, которая содержит 2 другие папки. Я хочу перечислить содержимое каждой из этих папок и вернуть его в HttpResponse. Я определяю служебную функцию list_dir_content в utils / data.py, где я использую функцию 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 проекта

1 Ответ

0 голосов
/ 27 января 2020

Просто замените в функции 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', '*.')
...