Ana bilgisayar sunucusunun adını almak için Django nasıl kullanılır?Ana bilgisayar sunucusunun adını almak için Django nasıl kullanılır?
İstemci adı yerine barındırma sunucusunun adına ihtiyacım var mı?
Ana bilgisayar sunucusunun adını almak için Django nasıl kullanılır?Ana bilgisayar sunucusunun adını almak için Django nasıl kullanılır?
İstemci adı yerine barındırma sunucusunun adına ihtiyacım var mı?
Genellikle settings.py
böyle bir şey koymak), varsa ters proxy üstbilgileri dikkate alınarak. Bir isteğiniz yoksa, ana makine adını ayarlarınızda bir yere yapılandırmanız gerekir. Sadece sistem ana bilgisayar adına bakmak, birçok durumda belirsiz olabilir, sanal ana bilgisayarlar en yaygın olanıdır.
Docker kullanıyorsanız, çözümünüz çalışmıyor. URL yerine kapsayıcı kimliğini gösterecektir. –
Çözümüm Docker'ın varlığından önce yazılmıştır. Afedersiniz. –
Doğru çözüm, 'request.get_host() ' – Dorian
os.environ.get('HOSTNAME')
Eğer tam bir locname alır (örn, bu bir görünüm içindedir) bir istek varsa
import socket
try:
HOSTNAME = socket.gethostname()
except:
HOSTNAME = 'localhost'
, sen request.get_host()
bakabilirsiniz (ana ve bağlantı noktasını:
Sadece @Tobu's answer'a ekleyin. Eğer bir istek nesnesi varsa ve siz protokolü (yani http/https) bilmek istiyorum, bunu yapabilirsiniz:
if request.is_secure():
protocol = 'https'
else:
protocol = 'http'
True
döner is_secure() Çünkü istek HTTPS ile yaptıysanız.
gibi görünüyor. [Request.scheme]' yi kullanamazdınız (https://docs.djangoproject.com/en/dev/ref/request-response/#django.http .HttpRequest.scheme)? –
@RyneEverett teşekkürler. bilmiyordum (facepalm). – azalea
Bu işlemin bu kadar karmaşık olduğunu düşünmüyorum Dj. – zallarak