Comment utiliser Django pour obtenir le nom du serveur hôte?
J'ai besoin du nom du serveur d'hébergement au lieu du nom du client?
Je mets généralement quelque chose comme ceci dans settings.py
:
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
Si vous avez une requête (par exemple, celle-ci se trouve dans une vue), vous pouvez consulter request.get_Host()
qui vous procure un nom complet (hôte et port), en tenant compte des en-têtes de proxy inverse, le cas échéant. Si vous n'avez pas de demande, vous devez configurer le nom d'hôte quelque part dans vos paramètres. Regarder le nom d'hôte du système peut être ambigu dans de nombreux cas, les hôtes virtuels étant les plus courants.
Ajoutez simplement à @ La réponse de Tobu . Si vous avez un objet de requête et souhaitez connaître le protocole (http/https), vous pouvez utiliser request.schemeCommentaire de @ RyneEverett ).
Sinon, vous pouvez faire (réponse originale ci-dessous):
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
Parce que is_secure () renvoie True
si la demande a été effectuée avec HTTPS.
Essayez os.environ.get('HOSTNAME')
En gros, vous pouvez prendre avec request.get_Host()
dans votre vue/viewet. Il retourne <ip:port>