Django:在settings.py中获取远程IP地址

时间:2010-06-16 07:27:45

标签: python django

我想启用debug(DEBUG = True)对于我的Django项目,只有它在localhost上运行。如何在settings.py中获取用户IP地址?我希望这样的工作能够发挥作用:

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

如何将user_ip变量中的用户IP地址放在settings.py文件中?

3 个答案:

答案 0 :(得分:5)

也许你只需指定一些INTERNAL_IPS即可: http://docs.djangoproject.com/en/dev/ref/settings/#setting-INTERNAL_IPS

答案 1 :(得分:3)

使用它。

import socket

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

编辑:啊,我误解了这个话题。

答案 2 :(得分:0)

在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)