我想启用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
文件中?
答案 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)