回答
我一般放在settings.py
是這樣的:
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
如果您使用Docker,則您的解決方案不起作用。它將顯示容器ID而不是URL。 – 2016-11-18 09:57:42
我的解決方案是在Docker存在之前編寫的。抱歉。 – 2016-11-22 08:03:30
正確的解決方案似乎是'request.get_host()' – Dorian 2017-02-14 05:14:23
你試過os.environ.get('HOSTNAME')
?
如果您有一個請求(例如,這是一個視圖中),你可以看看request.get_host()
它讓你一個完整的LOCNAME(主機和端口),考慮到反向代理標頭(如果有的話)。如果您沒有請求,則應該在設置中的某處配置主機名。在很多情況下,查看系統主機名可能不明確,虛擬主機是最常見的。
只需添加到@Tobu's answer即可。 如果您有一個請求對象,你想知道的協議(即HTTP/HTTPS),你可以這樣做:
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
因爲is_secure()回報True
如果請求被HTTPS建立。
難道你不能只使用[request.scheme](https://docs.djangoproject.com/en/dev/ref/request-response/#django.http .HttpRequest.scheme)? – 2015-07-21 20:28:09
@RyneEverett謝謝。不知道(facepalm)。 – azalea 2015-07-21 20:43:00
- 1. WCF:如何獲取主機IP或服務器名稱
- 2. linux c - 獲取服務器主機名?
- 3. 獲取請求服務器的主機名稱
- 4. 如何從IP地址獲取服務器的機器名稱?
- 5. 獲取主機服務器名稱爲iOS
- 6. 如何從服務器獲取機器名稱SSL證書
- 7. 如何獲取我的Web服務器的主機名
- 8. 獲取服務器名稱
- 9. SAS服務器:如何獲取客戶端機器的機器名稱?
- 10. 使用Nagios獲取服務器主機名
- 11. 流星:如何獲取主機名,服務器端
- 12. 如何使用固定DNS服務器獲取主機名的IP?
- 13. 如何使用getmxrr獲取郵件服務器的主機名,ip地址?
- 14. 如何使用PID從服務器層獲取進程名稱
- 15. 如何識別遠程主機的網絡服務器名稱
- 16. 如何使用cocoa/obj-c從掛載目錄獲取服務器主機名?
- 17. 根據服務器名稱獲取服務名稱
- 18. 獲取應用服務器下的真實(虛擬)主機名
- 19. 如何獲取Django中的服務器名稱以獲得完整的url?
- 20. 在虛擬主機使用目錄服務器名稱
- 21. 獲取服務器名稱的ContextLoaderListener
- 22. 如何在主機名上運行django服務器?
- 23. 主機名-f主機名:名稱或服務未知
- 24. 如何使用CMake或CTest獲取主機名稱
- 25. 如何獲取安裝服務人員的主機名?
- 26. 如何在PHP中獲取服務器中本地機器的名稱?
- 27. 如何使用PHP獲取計算機名稱,計算機的本地IP和計算機的服務器IP
- 28. 獲取打印服務器上的打印機名稱
- 29. 在PHP中獲取服務器的主機名或IP地址
- 30. Logstash,獲取遠程服務器名稱
我不敢相信這個過程在Dj中如此複雜。 – zallarak 2014-12-17 01:29:09