Django: получить удаленный IP-адрес внутри settings.py - PullRequest
1 голос
/ 16 июня 2010

Я хочу включить отладку (DEBUG = True) Для моего проекта Django, только если он работает на localhost.Как я могу получить IP-адрес пользователя внутри settings.py?Я хотел бы, чтобы что-то вроде этого работало:

#Debugging only on localhost
if user_ip = '127.0.0.1':
    DEBUG = True
else:
    DEBUG = False 

Как поместить IP-адрес пользователя в переменную user_ip в файле settings.py?

Ответы [ 3 ]

5 голосов
/ 16 июня 2010

Может быть, вам достаточно указать несколько INTERNAL_IPS: http://docs.djangoproject.com/en/dev/ref/settings/#setting-INTERNAL_IPS

3 голосов
/ 16 июня 2010

используйте это.

import socket

print socket.gethostbyname_ex(socket.gethostname())[2]

редактировать: ах, я неправильно понял тему.

0 голосов
/ 16 июня 2010

Попробуйте это в ваших settings.py

class LazyDebugSetting(object):
    def __init__(self):
        self.value = None
    def __nonzero__(self):
        if not self.value:
           # as emre yilmaz say
           user_ip = socket.gethostbyname_ex(socket.gethostname())[2]
           self.value = user_ip == '127.0.0.1'
        return self.value 
    __len__ = __nonzero__

DEBUG = LazyDebugSetting()

Но лучше используйте INTERNAL_IPS

Или используйте переменные окружения

DEBUG = os.environ.get('DEVELOP_MODE', False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...