2012-04-12 17 views

Respuesta

16
request.build_absolute_uri('/') 

o usted podría intentar

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

me da mi IP de la máquina. no el 127.0.0.1 –

2

Si usted quiere saber exactamente la dirección IP que el servidor de desarrollo se inició con, se puede utilizar para este sys.argv. El servidor de desarrollo de Django usa el mismo truco internamente para reiniciar el servidor de desarrollo con los mismos argumentos

servidor de desarrollo de inicio:

manage.py runserver 127.0.0.1:8000 

dirección Ponte en código:

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

Esto imprime 127.0.0.1:8000

+0

bueno, pensé que esto debería ser posible, no pude encontrar el comando de reinicio :-) –

+0

El mecanismo de autorrecarga está en django.utils.autoreload. En el método restart_with_reloader, toma sus argumentos de 'sys.argv' – Wesley

8

Con Django documentos here, puede utilizar:

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() 
Cuestiones relacionadas