Почему Django не удалось загрузить файл на сервер

if request.method == 'POST': 
    k = request.FILES
    obj = request.FILES['upload']
    t = int(time.time())
    jobid = 'jobid'+str(t)
    job_name = jobid + '_' + obj.name
    print(job_name)
    fr = open('prediction/PanPep/upload/' + job_name, 'wb+')

Я использовал request.FILES для получения загруженного файла и создания этого файла на моем сервере. Все было нормально, когда я загрузил первый файл. Но затем я получаю ошибку, когда нужно создать файл.

это ошибка: FileNotFoundError: [Errno 2] Нет такого файла или каталога: 'prediction/PanPep/upload/jobid1709638360_Example_zero-shot.csv' [05/Mar/2024 19:32:40] "POST /panpep/ HTTP/1.1" 500 67598

Похоже, что это связано с каким-то конфликтом, как объяснить это явление и как его исправить.

Заранее спасибо!

В Web, не предпочтительно использовать относительные пути, так как вы не знаете, какой каталог является текущим, поэтому всегда лучше использовать абсолютные пути, В Django вы можете достичь этого, используя BASE_DIR.

Кроме того, для производственных целей лучше поместить этот путь в settings .py

UPLOADS_DIR = BASE_DIR + 'prediction/PanPep/upload/'

Затем в вашем коде,

from django.conf import settings
fr = open(settings.UPLOADS_DIR + job_name, 'wb+')

Более подробную информацию вы можете найти в этом ответе.

Вернуться на верх