2012-04-12 24 views

回答

16
request.build_absolute_uri('/') 

或者你可以尝试

import socket 
socket.gethostbyname(socket.gethostname()) 
+0

它给我我的机器IP。不是127.0.0.1 – 2012-04-12 07:33:37

2

如果你想确切地知道开发服务器开始使用IP地址,你可以使用sys.argv这一点。 Django开发服务器使用同样的伎俩在内部使用相同的参数重新启动开发服务器

开始开发服务器:在代码

manage.py runserver 127.0.0.1:8000 

获取地址:

if settings.DEBUG: 
    import sys 
    print sys.argv[-1] 

这将打印127.0.0.1:8000

+0

不错的一个,我认为这应该是可能的,找不到重新启动命令:-) – 2012-04-12 08:02:26

+0

autoreload机制在django.utils.autoreload。在restart_with_reloader方法中,它从'sys.argv'中取得它的参数 – Wesley 2012-04-12 08:53:49

8

使用Django文档here,您可以使用:

domain = request.get_host() 
# domain = 'localhost:8000' 
0
import socket 
host = socket.gethostname() 
0
import re 
import subprocess 


def get_ip_machine(): 
    process = subprocess.Popen(['ifconfig'], stdout=subprocess.PIPE) 

    ip_regex = re.compile('(((1?[0-9]{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((1?[0-9]{1,2})|(2[0-4]\d)|(25[0-5]))') 

    return ip_regex.search(process.stdout.read(), re.MULTILINE).group() 
相关问题