¿Cómo usar Django para obtener el nombre del servidor host?¿Cómo usar Django para obtener el nombre del servidor host?
Necesito el nombre del servidor de alojamiento en lugar del nombre del cliente?
¿Cómo usar Django para obtener el nombre del servidor host?¿Cómo usar Django para obtener el nombre del servidor host?
Necesito el nombre del servidor de alojamiento en lugar del nombre del cliente?
por lo general poner algo como esto en settings.py
:
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
Su solución no funciona, si usa Docker. Mostrará la ID del contenedor en lugar de la URL. –
Mi solución fue escrita antes de que existiera Docker. Lo siento. –
La solución correcta parece ser 'request.get_host()' – Dorian
¿Has probado os.environ.get('HOSTNAME')
?
Si usted tiene una petición (por ejemplo, esto es dentro de una vista), se puede ver en request.get_host()
que se consigue un LOCNAME completa (host y el puerto), teniendo en cuenta los encabezados de proxy inverso si los hay. Si no tiene una solicitud, debe configurar el nombre de host en su configuración. El simple hecho de observar el nombre de host del sistema puede ser ambiguo en muchos casos, siendo los hosts virtuales los más comunes.
Simplemente agregue a @Tobu's answer. Si usted tiene un objeto de la petición, y que le gustaría saber el protocolo (es decir, http/https), que puede hacer:
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
Debido is_secure() vuelve True
si la solicitud se hizo con HTTPS.
¿No podría simplemente usar [request.scheme] (https://docs.djangoproject.com/en/dev/ref/request-response/#django.http .HttpRequest.scheme)? –
@RyneEverett gracias. no lo sabía (facepalm). – azalea
No puedo creer que este proceso sea tan intrincado en Dj. – zallarak