2016-05-14 6 views
0

Я создаю веб-интерфейс Django (overkill - знаю!) Для нескольких небольших функций python. Один из них преобразует txt-файл, хранящийся в корне Django. Ну, это так.Ссылка на файл в Django views.py

У меня есть следующие настройки в нескольких местах:

with open('file.csv','r') as source: 
... 

Однако без установки всего каталога на моей машине (например,/дома/...), он не может найти файл. Я попытался поместить это в каталог Static (в идеале я хотел бы, чтобы люди могли загрузить файл на более позднем этапе), но с той же проблемой.

Как вы работаете с файлами в Django? Какова наилучшая практика для решения вышеизложенного, позволяющая кому-то загрузить его позже?

+0

Если вы хотите, чтобы пользователи скачивали файлы позже, вы можете сохранить их пути в модели. – alix

ответ

1

Если вам нужно только путь:

import os 
from django.conf import settings 

file_path = os.path.join(settings.STATIC_ROOT, 'file.txt') 

with open(file_path, 'r') as source: 
    # do stuff 
  • Пожалуйста, обратите внимание, что вам нужно поместить файл в директории, как это: my_app/статический/my_app/file.txt

для получения дополнительной информации вы можете обратиться к Django docs.

+0

Сделав это, смогу ли я открыть его и использовать? – NickP

+0

Да. Вы будете ... –

+0

Нужно ли определять статический корень каждый раз, когда приложение установлено? Я мог бы сделать это только в том случае, если я установил статический корень прямо в статический каталог приложения. Значит, это не будет работать с несколькими приложениями? – NickP