Относительный путь в settings.py в django - PullRequest
1 голос
/ 30 сентября 2011

для различных настроек (MEDIA_ROOT, TEMPLATE_DIRS) в файле setting.py указывается указать абсолютный путь. Я настроил apache с mod_wsgi. У меня есть скрипт wsgi в папке с именем apache, который перенаправляет на settings.py.

import os
import sys

path = 'D:/Projects/Dan'

if path not in sys.path:
  sys.path.append(path )

os.environ['DJANGO_SETTINGS_MODULE'] = 'Django.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

(не поймите меня неправильно - Django - это название моего проекта.)

Хорошо, мой вопрос - теперь, когда мы импортировали путь к моему проекту в системный путь в скрипте wsgi, не более ли целесообразно, чтобы я указывал относительный путь в settings.py, поскольку это облегчило бы развертывание. Если я ошибаюсь, скажите, пожалуйста, стандартную процедуру, чтобы я мог задать все пути в одном файле, кроме трех файлов (Apache - httpd.conf, mod_wsgi - django.wsgi, django - settings.py).

1 Ответ

6 голосов
/ 30 сентября 2011

Использование:

import os
this_directory = os.path.dirname(__file__)

, а затем:

absolute_directory = os.path.join(this_directory, 'relative.txt')

Кстати, называть ваш проект "Django" не рекомендуется, поскольку сам пакет Django называется "django".Вы не должны полагаться на различия в случае, если это не вызывает путаницы.Короче говоря, имена пакетов / модулей Python должны отличаться в каждом конкретном случае.Каталог проекта вашего сайта рассматривается как пакет Python и, следовательно, проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...