Как инициировать ОТЛАДКУ django на рабочем сервере не навязчиво

Я ищу надежный метод инициирования ОТЛАДКИ для запросов INTERNAL_IPS на django рабочем сервере, не требуя изменения settings.py файла. Главным образом для получения панели инструментов, идущей, чтобы некоторые разработчики проверили проблемы о живых данных/медиа, но не полагаясь на них для сброса настроек, после того как они закончили.

Подобный этому методу. hovever это единственное развертывание исков.

http://nicksergeant.com/blog/django/automatically-setting-debug-your-django-app-based-server-hostname

в прошлом в базирующихся системах php у меня были mydomain.com и демонстрационный mydomaincom.myprodserver.com, куда prodserver домен может автоматически выполнить код отладки на основе $ _SERVER ['HOST_NAME'], но django испытывает недостаток в легком суперглобальном. например, в примере блога имя хоста является/etc/hostname не vhost.

Любые идеи ценятся.

Править:

У меня есть своего рода обходное решение (но идеально я предпочел бы более портативный) путем добавления/path/to/django_in_debug/к sys.path mydomaincom.myprodserver.com vhost запись. Затем в settings.py файле

try:
    from django_in_debug.settings import *
except:
    DEBUG = False

5
задан michael 22 December 2009 в 02:20
поделиться

1 ответ

-

То, о чем вы просите, немного сложнее, чем кажется. Вы хотите показать отладочную информацию для определенных INTERNAL_IPS, которая происходит на -уровне запроса . Однако, вы говорите о файле settings.py, который находится на -уровне сайта.

Для этого, вам нужно, чтобы файл settings.py подвергался повторной оценке в каждом запросе, что, как вы можете сказать, является, вероятно, очень плохим направлением. В собственной документации Django, изменение настроек сайта после его загрузки - нет-нет (честно говоря, людям это сходит с рук, но это ничего не стоит официальной позиции Django).

Вот вам идея:

У вас есть 2 WSGI-файла. Первый WSGI файл указывает на ваши основные settings.py, а apache направляет на него трафик с сайта www.yourdomain.com... Второй WSGI файл указывает на debug_settings.py, а apache перенаправляет на него трафик с debug.yourdomain.com. debug_settinsg.py выглядит следующим образом:

from settings import *

DEBUG = True
TEMPLATE_DEBUG = DEBUG

Отсюда вы пишете простой промежуточный компонент для ловушки входящих запросов. IP-адрес запроса сравнивается с settings.INTERNAL_IPS и при обнаружении совпадения запрос перенаправляется на debug.yourdomain.com.

Это позволяет сохранить 1 копию сайта, но изменить настройку уровня сайта на основе значения уровня запроса.

.
9
ответ дан 14 December 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: