Развертывание Django на pythonanywere
Я развернул свое приложение django на pythonanywhere. но я вижу, что у меня проблема с относительным путем .
это приложение может загружать и сохранять 2 файла в каталоге мой код на самом деле таков:
from django.shortcuts import render
from django.core.files.storage import FileSystemStorage
import pandas as pd
import datetime
from datetime import datetime as td
import os
from collections import defaultdict
def home(request):
#upload file and save it in media folder
if request.method == 'POST':
uploaded_file = request.FILES['document']
uploaded_file2 = request.FILES['document2']
if uploaded_file.name.endswith('.xls'):
savefile = FileSystemStorage()
#save files
name = savefile.save(uploaded_file.name, uploaded_file)
name2 = savefile.save(uploaded_file2.name, uploaded_file2)
d = os.getcwd()
file_directory = d+'\\media\\'+name
file_directory2 = d+'\\media\\'+name2
results,output_df,new =results1(file_directory,file_directory2)
я получил эту ошибку
FileNotFoundError at /
[Errno 2] No such file or directory: '/home/VIRAD\\media\\Listing
/home/VIRAD/Django1/viruss/views.py, line 26, in home
results,output_df,new =results1(file_directory,file_directory2)
Замените эти строки на
file_directory = d+'\\media\\'+name
file_directory2 = d+'\\media\\'+name2
на это
from django.conf import settings
file_directory = f"{d}{settings.MEDIA_URL}{name}"
file_directory2 = f"{d}{settings.MEDIA_URL}{name2}"
и убедитесь, что вы указали MEDIA_URL в файле settings.py
следующим образом
MEDIA_URL = '/media/'
и добавьте это в ваш проект (где settings.py существует) urls.py
from django.conf import settings from django.conf.urls.static import static
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Похоже на проблему с путями. Наш код выглядит примерно так:
from pathlib import Path # We use the *pathlib* library
BASE_DIR = Path().resolve()
NEED_DIR = os.path.join(BASE_DIR, 'fixtures')
Then your code will look like:
d = os.getcwd()
file_directory = os.path.join(d, 'media', name1)
file_directory2 = os.path.join(d, 'media', name2)