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 ?
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 ?
Votre solution ne fonctionne pas si vous utilisez Docker. Elle affichera l'ID du conteneur au lieu de l'URL.
Si vous avez une requête (par exemple, ceci est à l'intérieur d'une vue), vous pouvez consulter request.get_host()
ce qui permet d'obtenir un nom de localité complet (hôte et port), en tenant compte, le cas échéant, des en-têtes de proxy inverse. Si vous n'avez pas de requête, vous devez configurer le nom d'hôte quelque part dans vos paramètres. Le simple fait de regarder le nom d'hôte du système peut être ambigu dans de nombreux cas, les hôtes virtuels étant les plus courants.
Il suffit d'ajouter à Réponse de @Tobu . Si vous avez un objet de requête et que vous souhaitez connaître le protocole (c'est-à-dire http / https), vous pouvez utiliser demande.schéma (comme suggéré par Commentaire de @RyneEverett ).
Vous pouvez également faire (réponse originale ci-dessous) :
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
Parce que is_secure() retours True
si la demande a été faite avec HTTPS.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
Je ne peux pas croire que ce processus soit si alambiqué à Dj.