如何获取正在运行的服务器URL

时间:2012-04-12 07:19:26

标签: django

当我运行服务器时,它会显示一条消息http://127.0.0.1:8000/。我想在代码中获取url。那里我没有请求对象。

5 个答案:

答案 0 :(得分:17)

request.build_absolute_uri('/')

或者你可以试试

import socket
socket.gethostbyname(socket.gethostname())

答案 1 :(得分:13)

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

domain = request.get_host()
# domain = 'localhost:8000'

答案 2 :(得分:3)

如果您想确切知道开发服务器的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

答案 3 :(得分:0)

import socket
host = socket.gethostname()

答案 4 :(得分: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()