Django:在settings.py中获取远程IP地址
我想在我的Django项目中开启调试模式(DEBUG = True
),但只有在它运行在本地的时候才这样做。我该如何在settings.py
文件中获取用户的IP地址呢?我希望能有类似下面的代码可以用:
#Debugging only on localhost
if user_ip = '127.0.0.1':
DEBUG = True
else:
DEBUG = False
我该如何把用户的IP地址放到settings.py
文件中的user_ip
变量里呢?
3 个回答
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)
3
用这个。
import socket
print socket.gethostbyname_ex(socket.gethostname())[2]
编辑:哦,我之前误解了这个话题。
5
也许你只需要指定一些内部IP地址就可以了。你可以在这里查看相关信息:https://docs.djangoproject.com/en/dev/ref/settings/#internal-ips